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

📄 dict_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00701 <span class="preprocessor">  public: \</span>00702 <span class="preprocessor">    cls(BOOL initialDeleteObjects = initDelObj) \</span>00703 <span class="preprocessor">      : cls##_PTemplate(initialDeleteObjects) { } \</span>00704 <span class="preprocessor">    virtual PObject * Clone() const \</span>00705 <span class="preprocessor">      { return PNEW cls(0, this); } \</span>00706 <span class="preprocessor"></span>00707 <span class="preprocessor"></span>00708 <span class="preprocessor">#else // PHAS_TEMPLATES</span>00709 <span class="preprocessor"></span>00710 <a name="l00711"></a><a class="code" href="dict_8h.html#a0">00711</a> <span class="preprocessor">#define PSET(cls, K) \</span>00712 <span class="preprocessor">  class cls : public PAbstractSet { \</span>00713 <span class="preprocessor">  PCLASSINFO(cls, PAbstractSet); \</span>00714 <span class="preprocessor">  protected: \</span>00715 <span class="preprocessor">    inline cls(int dummy, const cls * c) \</span>00716 <span class="preprocessor">      : PAbstractSet(dummy, c) \</span>00717 <span class="preprocessor">      { reference-&gt;deleteObjects = c-&gt;reference-&gt;deleteObjects; } \</span>00718 <span class="preprocessor">  public: \</span>00719 <span class="preprocessor">    inline cls(BOOL initialDeleteObjects = FALSE) \</span>00720 <span class="preprocessor">      : PAbstractSet() { AllowDeleteObjects(initialDeleteObjects); } \</span>00721 <span class="preprocessor">    virtual PObject * Clone() const \</span>00722 <span class="preprocessor">      { return PNEW cls(0, this); } \</span>00723 <span class="preprocessor">    inline void Include(const PObject * key) \</span>00724 <span class="preprocessor">      { Append((PObject *)key); } \</span>00725 <span class="preprocessor">    inline void Exclude(const PObject * key) \</span>00726 <span class="preprocessor">      { Remove(key); } \</span>00727 <span class="preprocessor">    inline BOOL operator[](const K &amp; key) const \</span>00728 <span class="preprocessor">        { return AbstractContains(key); } \</span>00729 <span class="preprocessor">    inline BOOL Contains(const K &amp; key) const \</span>00730 <span class="preprocessor">        { return AbstractContains(key); } \</span>00731 <span class="preprocessor">    virtual const K &amp; GetKeyAt(PINDEX index) const \</span>00732 <span class="preprocessor">      { return (const K &amp;)AbstractGetKeyAt(index); } \</span>00733 <span class="preprocessor">  }</span>00734 <span class="preprocessor"></span><a name="l00735"></a><a class="code" href="dict_8h.html#a1">00735</a> <span class="preprocessor">#define PDECLARE_SET(cls, K, initDelObj) \</span>00736 <span class="preprocessor"> PSET(cls##_PTemplate, K); \</span>00737 <span class="preprocessor"> PDECLARE_CLASS(cls, cls##_PTemplate) \</span>00738 <span class="preprocessor">  protected: \</span>00739 <span class="preprocessor">    inline cls(int dummy, const cls * c) \</span>00740 <span class="preprocessor">      : cls##_PTemplate(dummy, c) { } \</span>00741 <span class="preprocessor">  public: \</span>00742 <span class="preprocessor">    inline cls(BOOL initialDeleteObjects = initDelObj) \</span>00743 <span class="preprocessor">      : cls##_PTemplate() { AllowDeleteObjects(initialDeleteObjects); } \</span>00744 <span class="preprocessor">    virtual PObject * Clone() const \</span>00745 <span class="preprocessor">      { return PNEW cls(0, this); } \</span>00746 <span class="preprocessor"></span>00747 <span class="preprocessor"></span>00748 <span class="preprocessor">#endif  // PHAS_TEMPLATES</span>00749 <span class="preprocessor"></span>00750 00751 <a class="code" href="dict_8h.html#a0">PSET</a>(POrdinalSet, <a class="code" href="classPOrdinalKey.html">POrdinalKey</a>);00752 00753 00755 <a name="l00758"></a><a class="code" href="classPAbstractDictionary.html">00758</a> <span class="keyword">class </span><a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a> : <span class="keyword">public</span> <a class="code" href="classPHashTable.html">PHashTable</a>00759 {00760   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>, <a class="code" href="classPHashTable.html">PHashTable</a>);00761   <span class="keyword">public</span>:00769     <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPAbstractDictionary.html#z99_0">PAbstractDictionary</a>();00771 00780     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPAbstractDictionary.html#z101_0">PrintOn</a>(00781       ostream &amp;strm   00782     ) <span class="keyword">const</span>;00784 00795     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractDictionary.html#z103_0">Insert</a>(00796       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; key,   00797       <a class="code" href="classPObject.html">PObject</a> * obj          00798     );00799 00806     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractDictionary.html#z103_1">InsertAt</a>(00807       PINDEX index,   00808       <a class="code" href="classPObject.html">PObject</a> * obj   00809     );00810 00820     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractDictionary.html#z103_2">RemoveAt</a>(00821       PINDEX index   00822     );00823 00832     <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractDictionary.html#z103_3">SetAt</a>(00833       PINDEX index,   00834       <a class="code" href="classPObject.html">PObject</a> * val   00835     );00836 00844     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractDictionary.html#z103_4">GetAt</a>(00845       PINDEX index  00846     ) <span class="keyword">const</span>;00847 00859     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractDictionary.html#z103_5">GetObjectsIndex</a>(00860       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj  00861     ) <span class="keyword">const</span>;00862 00871     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractDictionary.html#z103_6">GetValuesIndex</a>(00872       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; obj  00873     ) <span class="keyword">const</span>;00875 00876 00887     <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractDictionary.html#z105_0">SetDataAt</a>(00888       PINDEX index,   00889       <a class="code" href="classPObject.html">PObject</a> * obj   00890     );00891 00903     <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractDictionary.html#z105_1">AbstractSetAt</a>(00904       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; key,  00905       <a class="code" href="classPObject.html">PObject</a> * obj         00906     );00907 00917     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> &amp; <a class="code" href="classPAbstractDictionary.html#z105_2">GetRefAt</a>(00918       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; key   00919     ) <span class="keyword">const</span>;00920 00927     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractDictionary.html#z105_3">AbstractGetAt</a>(00928       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; key   00929     ) <span class="keyword">const</span>;00931 00932   <span class="keyword">protected</span>:00933     <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPAbstractDictionary.html#z99_0">PAbstractDictionary</a>(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a> * c);00934 00935   <span class="keyword">private</span>:00936     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPCollection.html#z75_0">Append</a>(00937       <a class="code" href="classPObject.html">PObject</a> * obj   <span class="comment">// New object to place into the collection.</span>00938     );00939     <span class="comment">/* This function is meaningless and will assert.</span>00940 <span class="comment"></span>00941 <span class="comment">       @return</span>00942 <span class="comment">       Always zero.</span>00943 <span class="comment">     */</span>00944 00945     <span class="keyword">virtual</span> BOOL <a class="code" href="classPCollection.html#z75_3">Remove</a>(00946       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj   <span class="comment">// Existing object to remove from the collection.</span>00947     );00948     <span class="comment">/* Remove the object from the collection. If the AllowDeleteObjects option</span>00949 <span class="comment">       is set then the object is also deleted.</span>00950 <span class="comment"></span>00951 <span class="comment">       Note that the comparison for searching for the object in collection is</span>00952 <span class="comment">       made by pointer, not by value. Thus the parameter must point to the</span>00953 <span class="comment">       same instance of the object that is in the collection.</span>00954 <span class="comment"></span>00955 <span class="comment">       @return</span>00956 <span class="comment">       TRUE if the object was in the collection.</span>00957 <span class="comment">     */</span>00958 00959 };00960 00961 00962 <span class="preprocessor">#ifdef PHAS_TEMPLATES</span>00963 <span class="preprocessor"></span>00971 <span class="keyword">template</span> &lt;<span class="keyword">class</span> K, <span class="keyword">class</span> D&gt; <span class="keyword">class </span>PDictionary : <span class="keyword">public</span> <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>00972 {00973   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PDictionary, <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>);00974 00975   <span class="keyword">public</span>:00984     PDictionary()00985       : <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>() { }00987 00994     <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>00995 <span class="keyword">      </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PDictionary(0, <span class="keyword">this</span>); }00997 01010     D &amp; operator[](01011       <span class="keyword">const</span> K &amp; key   01012     )<span class="keyword"> const</span>01013 <span class="keyword">      </span>{ <span class="keywordflow">return</span> (D &amp;)<a class="code" href="classPAbstractDictionary.html#z105_2">GetRefAt</a>(key); }01014 01023     BOOL Contains(01024       <span class="keyword">const</span> K &amp; key   01025     )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPHashTable.html#z93_0">AbstractContains</a>(key); }01026 01035     <span class="keyword">virtual</span> D * <a class="code" href="classPAbstractDictionary.html#z103_2">RemoveAt</a>(01036       <span class="keyword">const</span> K &amp; key   01037     ) { D * obj = <a class="code" href="classPAbstractDictionary.html#z103_4">GetAt</a>(key); <a class="code" href="classPAbstractDictionary.html#z105_1">AbstractSetAt</a>(key, NULL); <span class="keywordflow">return</span> obj; }01038 01050     <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractDictionary.html#z103_3">SetAt</a>(01051       <span class="keyword">const</span> K &amp; key,  <span class="comment">// Key for position in dictionary to add object.</span>01052       D * obj         <span class="comment">// New object to put into the dictionary.</span>01053     ) { <span class="keywordflow">return</span> <a class="code" href="classPAbstractDictionary.html#z105_1">AbstractSetAt</a>(key, obj); }01054 01061     <span class="keyword">virtual</span> D * <a class="code" href="classPAbstractDictionary.html#z103_4">GetAt</a>(01062       <span class="keyword">const</span> K &amp; key   <span class="comment">// Key for position in dictionary to get object.</span>01063     )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (D *)<a class="code" href="classPAbstractDictionary.html#z105_3">AbstractGetAt</a>(key); }01064 01076     <span class="keyword">const</span> K &amp; GetKeyAt(01077       PINDEX index  01078     )<span class="keyword"> const</span>01079 <span class="keyword">      </span>{ <span class="keywordflow">return</span> (<span class="keyword">const</span> K &amp;)<a class="code" href="classPHashTable.html#z93_1">AbstractGetKeyAt</a>(index); }01080 01092     D &amp; GetDataAt(01093       PINDEX index  01094     )<span class="keyword"> const</span>01095 <span class="keyword">      </span>{ <span class="keywordflow">return</span> (D &amp;)<a class="code" href="classPHashTable.html#z93_2">AbstractGetDataAt</a>(index); }01097 01098   <span class="keyword">protected</span>:01099     PDictionary(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PDictionary * c)01100       : <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>(dummy, c) { }

⌨️ 快捷键说明

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