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; }
481 const PAbstractSet &
set
488 const PAbstractSet & set1,
489 const PAbstractSet & set2,
490 PAbstractSet * intersection = NULL
557 ) { this->
Append(obj.Clone());
return *
this; }
579 ) { this->
erase(this->
find(obj));
return *
this; }
627 class const_iterator;
636 ,
element(t->GetElementAt((PINDEX)0))
676 iterator
end() {
return iterator(); }
700 const_iterator
end()
const {
return const_iterator(); }
701 const_iterator
find(
const T & k)
const {
return const_iterator(this->
hashTable, k); }
725 #define PSET(cls, T) typedef PSet<T> cls
739 #define PDECLARE_SET(cls, T, initDelObj) \
740 class cls : public PSet<T> { \
741 typedef PSet<T> BaseClass; PCLASSINFO(cls, BaseClass) \
743 cls(int dummy, const cls * c) \
744 : BaseClass(dummy, c) { } \
746 cls(PBoolean initialDeleteObjects = initDelObj) \
747 : BaseClass(initialDeleteObjects) { } \
748 virtual PObject * Clone() const \
749 { return PNEW cls(0, this); } \
948 virtual PINDEX Append(
1021 )
const {
return dynamic_cast<const D &
>(this->
GetRefAt(key)); }
1024 ) {
return dynamic_cast<D &
>(this->
GetRefAt(key)); }
1049 ) {
return dynamic_cast<D *
>(this->
AbstractSetAt(key, NULL)); }
1075 )
const {
return dynamic_cast<D *
>(this->
AbstractGetAt(key)); }
1126 class const_iterator;
1158 if (element != NULL) {
1176 template<
class CK,
class CD>
1206 iterator
begin() {
return iterator(
this); }
1207 iterator
end() {
return iterator(); }
1208 iterator
find(
const K & key) {
return iterator(
this, key); }
1232 const_iterator
begin()
const {
return const_iterator(
this); }
1233 const_iterator
end()
const {
return const_iterator(); }
1234 const_iterator
find(
const K & k)
const {
return const_iterator(
this, k); }
1258 #define PDICTIONARY(cls, K, D) typedef PDictionary<K, D> cls
1273 #define PDECLARE_DICTIONARY(cls, K, D) \
1274 PDICTIONARY(cls##_PTemplate, K, D); \
1275 PDECLARE_CLASS(cls, cls##_PTemplate) \
1277 cls(int dummy, const cls * c) \
1278 : cls##_PTemplate(dummy, c) { } \
1281 : cls##_PTemplate() { } \
1282 virtual PObject * Clone() const \
1283 { return PNEW cls(0, this); } \
1430 #define PORDINAL_DICTIONARY(cls, K) typedef POrdinalDictionary<K> cls
1447 #define PDECLARE_ORDINAL_DICTIONARY(cls, K) \
1448 PORDINAL_DICTIONARY(cls##_PTemplate, K); \
1449 PDECLARE_CLASS(cls, POrdinalDictionary<K>) \
1451 cls(int dummy, const cls * c) \
1452 : cls##_PTemplate(dummy, c) { } \
1455 : cls##_PTemplate() { } \
1456 virtual PObject * Clone() const \
1457 { return PNEW cls(0, this); } \
1460 #endif // PTLIB_DICT_H