📄 dict_8h-source.html
字号:
00221 00224 <a class="code" href="object_8h.html#a2">PINLINE</a> PINDEX <a class="code" href="classPOrdinalKey.html#z85_3">operator--</a>(<span class="keywordtype">int</span>);00225 00228 <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPOrdinalKey.html">POrdinalKey</a> & <a class="code" href="classPOrdinalKey.html#z85_5">operator+=</a>(PINDEX);00229 00232 <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPOrdinalKey.html">POrdinalKey</a> & <a class="code" href="classPOrdinalKey.html#z85_6">operator-=</a>(PINDEX );00234 00235 <span class="keyword">private</span>:00236 PINDEX theKey;00237 };00238 00239 00241 <a name="l00252"></a><a class="code" href="classPHashTable.html">00252</a> <span class="keyword">class </span><a class="code" href="classPHashTable.html">PHashTable</a> : <span class="keyword">public</span> <a class="code" href="classPCollection.html">PCollection</a>00253 {00254 <a class="code" href="contain_8h.html#a0">PCONTAINERINFO</a>(<a class="code" href="classPHashTable.html">PHashTable</a>, <a class="code" href="classPCollection.html">PCollection</a>);00255 00256 <span class="keyword">public</span>:00259 00260 <a class="code" href="classPHashTable.html#z87_0">PHashTable</a>();00262 00274 <span class="keyword">virtual</span> <a class="code" href="classPObject.html#z199_0">Comparison</a> <a class="code" href="classPHashTable.html#z89_0">Compare</a>(00275 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & obj 00276 ) <span class="keyword">const</span>;00278 00279 00280 <span class="keyword">protected</span>:00290 <span class="keyword">virtual</span> BOOL <a class="code" href="classPHashTable.html#z91_0">SetSize</a>(00291 PINDEX newSize 00292 );00294 00295 00306 <a class="code" href="object_8h.html#a2">PINLINE</a> BOOL <a class="code" href="classPHashTable.html#z93_0">AbstractContains</a>(00307 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & key 00308 ) <span class="keyword">const</span>;00309 00324 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & <a class="code" href="classPHashTable.html#z93_1">AbstractGetKeyAt</a>(00325 PINDEX index 00326 ) <span class="keyword">const</span>;00327 00342 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> & <a class="code" href="classPHashTable.html#z93_2">AbstractGetDataAt</a>(00343 PINDEX index 00344 ) <span class="keyword">const</span>;00346 00347 00348 <span class="comment">// Member variables</span><a name="l00349"></a><a class="code" href="classPHashTable_1_1Element.html">00349</a> <span class="keyword">class </span><a class="code" href="classPHashTable_1_1Element.html">Element</a> {00350 <span class="keyword">public</span>:<a name="l00351"></a><a class="code" href="classPHashTable_1_1Element.html#l0">00351</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPHashTable_1_1Element.html#l0">Table</a>;<a name="l00352"></a><a class="code" href="classPHashTable_1_1Element.html#m0">00352</a> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPHashTable_1_1Element.html#m0">key</a>;<a name="l00353"></a><a class="code" href="classPHashTable_1_1Element.html#m1">00353</a> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPHashTable_1_1Element.html#m1">data</a>;<a name="l00354"></a><a class="code" href="classPHashTable_1_1Element.html#m2">00354</a> <a class="code" href="classPHashTable_1_1Element.html">Element</a> * <a class="code" href="classPHashTable_1_1Element.html#m2">next</a>;<a name="l00355"></a><a class="code" href="classPHashTable_1_1Element.html#m3">00355</a> <a class="code" href="classPHashTable_1_1Element.html">Element</a> * <a class="code" href="classPHashTable_1_1Element.html#m3">prev</a>;00356 };00357 00358 <a class="code" href="array_8h.html#a1">PDECLARE_BASEARRAY</a>(<a class="code" href="classPHashTable.html#l0">Table</a>, Element *)00359 #ifdef DOC_PLUS_PLUS00360 {00361 <span class="preprocessor">#endif</span>00362 <span class="preprocessor"></span> <span class="keyword">public</span>:00363 <span class="keyword">virtual</span> ~<a class="code" href="classPHashTable.html#l0">Table</a>() { <a class="code" href="classPContainer.html#b5">Destruct</a>(); }00364 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPContainer.html#b1">DestroyContents</a>();00365 00366 PINDEX AppendElement(<a class="code" href="classPObject.html">PObject</a> * key, <a class="code" href="classPObject.html">PObject</a> * data);00367 <a class="code" href="classPObject.html">PObject</a> * RemoveElement(<span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & key);00368 BOOL SetLastElementAt(PINDEX index);00369 Element * GetElementAt(<span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & key);00370 PINDEX GetElementsIndex(<span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a>*obj,BOOL byVal,BOOL keys) <span class="keyword">const</span>;00371 00372 PINDEX lastIndex;00373 PINDEX lastBucket;00374 Element * lastElement;00375 00376 BOOL deleteKeys;00377 00378 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPHashTable.html">PHashTable</a>;00379 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPAbstractSet.html">PAbstractSet</a>;00380 };<a name="l00381"></a><a class="code" href="classPHashTable.html#l0">00381</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPHashTable.html#l0">Table</a>;00382 00383 <a name="l00384"></a><a class="code" href="classPHashTable.html#n0">00384</a> <a class="code" href="classPHashTable.html#l0">Table</a> * <a class="code" href="classPHashTable.html#n0">hashTable</a>;00385 };00386 00387 00389 <a name="l00392"></a><a class="code" href="classPAbstractSet.html">00392</a> <span class="keyword">class </span><a class="code" href="classPAbstractSet.html">PAbstractSet</a> : <span class="keyword">public</span> <a class="code" href="classPHashTable.html">PHashTable</a>00393 {00394 <a class="code" href="contain_8h.html#a0">PCONTAINERINFO</a>(<a class="code" href="classPAbstractSet.html">PAbstractSet</a>, <a class="code" href="classPHashTable.html">PHashTable</a>);00395 <span class="keyword">public</span>:00403 <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPAbstractSet.html#z95_0">PAbstractSet</a>();00405 00416 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractSet.html#z97_0">Append</a>(00417 <a class="code" href="classPObject.html">PObject</a> * obj 00418 );00419 00432 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractSet.html#z97_1">Insert</a>(00433 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & before, 00434 <a class="code" href="classPObject.html">PObject</a> * obj 00435 );00436 00449 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractSet.html#z97_2">InsertAt</a>(00450 PINDEX index, 00451 <a class="code" href="classPObject.html">PObject</a> * obj 00452 );00453 00464 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractSet.html#z97_3">Remove</a>(00465 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj 00466 );00467 00474 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractSet.html#z97_4">RemoveAt</a>(00475 PINDEX index 00476 );00477 00483 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractSet.html#z97_5">GetAt</a>(00484 PINDEX index 00485 ) <span class="keyword">const</span>;00486 00499 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractSet.html#z97_6">SetAt</a>(00500 PINDEX index, 00501 <a class="code" href="classPObject.html">PObject</a> * val 00502 );00503 00515 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractSet.html#z97_7">GetObjectsIndex</a>(00516 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj 00517 ) <span class="keyword">const</span>;00518 00527 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractSet.html#z97_8">GetValuesIndex</a>(00528 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & obj 00529 ) <span class="keyword">const</span>;00531 };00532 00533 00534 <span class="preprocessor">#ifdef PHAS_TEMPLATES</span>00535 <span class="preprocessor"></span>00546 <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">class </span>PSet : <span class="keyword">public</span> <a class="code" href="classPAbstractSet.html">PAbstractSet</a>00547 {00548 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PSet, <a class="code" href="classPAbstractSet.html">PAbstractSet</a>);00549 00550 <span class="keyword">public</span>:00560 <span class="keyword">inline</span> PSet(BOOL initialDeleteObjects = FALSE)00561 : <a class="code" href="classPAbstractSet.html">PAbstractSet</a>() { <a class="code" href="classPCollection.html#z75_10">AllowDeleteObjects</a>(initialDeleteObjects); }00563 00569 <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>00570 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PSet(0, <span class="keyword">this</span>); }00572 00584 <span class="keywordtype">void</span> Include(00585 <span class="keyword">const</span> T * obj <span class="comment">// New object to include in the set.</span>00586 ) { <a class="code" href="classPAbstractSet.html#z97_0">Append</a>((<a class="code" href="classPObject.html">PObject</a> *)obj); }00587 00595 PSet & operator+=(00596 <span class="keyword">const</span> T & obj <span class="comment">// New object to include in the set.</span>00597 ) { <a class="code" href="classPAbstractSet.html#z97_0">Append</a>(obj.Clone()); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }00598 00606 <span class="keywordtype">void</span> Exclude(00607 <span class="keyword">const</span> T * obj <span class="comment">// New object to exclude in the set.</span>00608 ) { <a class="code" href="classPAbstractSet.html#z97_3">Remove</a>(obj); }00609 00617 PSet & operator-=(00618 <span class="keyword">const</span> T & obj <span class="comment">// New object to exclude in the set.</span>00619 ) { <a class="code" href="classPAbstractSet.html#z97_4">RemoveAt</a>(<a class="code" href="classPAbstractSet.html#z97_8">GetValuesIndex</a>(obj)); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }00620 00629 BOOL Contains(00630 <span class="keyword">const</span> T & key 00631 )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPHashTable.html#z93_0">AbstractContains</a>(key); }00632 00641 BOOL operator[](00642 <span class="keyword">const</span> T & key 00643 )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPHashTable.html#z93_0">AbstractContains</a>(key); }00644 00656 <span class="keyword">virtual</span> <span class="keyword">const</span> T & GetKeyAt(00657 PINDEX index 00658 )<span class="keyword"> const</span>00659 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (<span class="keyword">const</span> T &)<a class="code" href="classPHashTable.html#z93_1">AbstractGetKeyAt</a>(index); }00661 00662 00663 <span class="keyword">protected</span>:00664 PSet(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PSet * c)00665 : <a class="code" href="classPAbstractSet.html">PAbstractSet</a>(dummy, c)00666 { reference->deleteObjects = c->reference->deleteObjects; }00667 };00668 00669 00681 <span class="preprocessor">#define PSET(cls, T) typedef PSet<T> cls</span>00682 <span class="preprocessor"></span>00683 00695 <span class="preprocessor">#define PDECLARE_SET(cls, T, initDelObj) \</span>00696 <span class="preprocessor"> PSET(cls##_PTemplate, T); \</span>00697 <span class="preprocessor"> PDECLARE_CLASS(cls, cls##_PTemplate) \</span>00698 <span class="preprocessor"> protected: \</span>00699 <span class="preprocessor"> cls(int dummy, const cls * c) \</span>00700 <span class="preprocessor"> : cls##_PTemplate(dummy, c) { } \</span>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -