69 { this->m_key = newKey;
return *
this; }
92 if (this->m_key < other->m_key)
95 if (this->m_key > other->m_key)
107 virtual PINDEX
HashFunction()
const {
return PABSINDEX(this->m_key)%23; }
115 virtual void PrintOn(ostream & strm)
const { strm << this->m_key; }
471 const PAbstractSet &
set
478 const PAbstractSet & set1,
479 const PAbstractSet & set2,
480 PAbstractSet * intersection = NULL
547 ) { this->
Append(obj.Clone());
return *
this; }
569 ) { this->
erase(this->
find(obj));
return *
this; }
617 class const_iterator;
626 ,
element(t->GetElementAt((PINDEX)0))
666 iterator
end() {
return iterator(); }
690 const_iterator
end()
const {
return const_iterator(); }
691 const_iterator
find(
const T & k)
const {
return const_iterator(this->
hashTable, k); }
715 #define PSET(cls, T) typedef PSet<T> cls
729 #define PDECLARE_SET(cls, T, initDelObj) \
730 class cls : public PSet<T> { \
731 typedef PSet<T> BaseClass; PCLASSINFO(cls, BaseClass) \
733 cls(int dummy, const cls * c) \
734 : BaseClass(dummy, c) { } \
736 cls(PBoolean initialDeleteObjects = initDelObj) \
737 : BaseClass(initialDeleteObjects) { } \
738 virtual PObject * Clone() const \
739 { return PNEW cls(0, this); } \
938 virtual PINDEX Append(
1011 )
const {
return dynamic_cast<const D &
>(this->
GetRefAt(key)); }
1014 ) {
return dynamic_cast<D &
>(this->
GetRefAt(key)); }
1039 ) {
return dynamic_cast<D *
>(this->
AbstractSetAt(key, NULL)); }
1065 )
const {
return dynamic_cast<D *
>(this->
AbstractGetAt(key)); }
1116 class const_iterator;
1148 if (element != NULL) {
1166 template<
class CK,
class CD>
1196 iterator
begin() {
return iterator(
this); }
1197 iterator
end() {
return iterator(); }
1198 iterator
find(
const K & key) {
return iterator(
this, key); }
1222 const_iterator
begin()
const {
return const_iterator(
this); }
1223 const_iterator
end()
const {
return const_iterator(); }
1224 const_iterator
find(
const K & k)
const {
return const_iterator(
this, k); }
1248 #define PDICTIONARY(cls, K, D) typedef PDictionary<K, D> cls
1263 #define PDECLARE_DICTIONARY(cls, K, D) \
1264 PDICTIONARY(cls##_PTemplate, K, D); \
1265 PDECLARE_CLASS(cls, cls##_PTemplate) \
1267 cls(int dummy, const cls * c) \
1268 : cls##_PTemplate(dummy, c) { } \
1271 : cls##_PTemplate() { } \
1272 virtual PObject * Clone() const \
1273 { return PNEW cls(0, this); } \
1420 #define PORDINAL_DICTIONARY(cls, K) typedef POrdinalDictionary<K> cls
1437 #define PDECLARE_ORDINAL_DICTIONARY(cls, K) \
1438 PORDINAL_DICTIONARY(cls##_PTemplate, K); \
1439 PDECLARE_CLASS(cls, POrdinalDictionary<K>) \
1441 cls(int dummy, const cls * c) \
1442 : cls##_PTemplate(dummy, c) { } \
1445 : cls##_PTemplate() { } \
1446 virtual PObject * Clone() const \
1447 { return PNEW cls(0, this); } \
1450 #endif // PTLIB_DICT_H