version 1.2, 2001/04/27 01:05:03
|
version 1.3, 2001/04/27 18:46:20
|
|
|
// | // |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
| |
Uint32 Hash(const String& str) |
Uint32 HashFunc<String>::hash(const String& str) |
{ | { |
Uint32 h = 0; | Uint32 h = 0; |
| |
|
|
| |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
// | // |
// _HashTableBase::_BucketBase |
// _HashTableRep::_BucketBase |
// | // |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
| |
|
|
| |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
// | // |
// _HashTableBase |
// _HashTableRep |
// | // |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
| |
_HashTableBase::_HashTableBase(Uint32 numChains) : _size(0), _numChains(numChains) |
_HashTableRep::_HashTableRep(Uint32 numChains) : _size(0), _numChains(numChains) |
{ | { |
if (numChains < 8) | if (numChains < 8) |
numChains = 8; | numChains = 8; |
|
|
memset(_chains, 0, sizeof(_BucketBase*) * _numChains); | memset(_chains, 0, sizeof(_BucketBase*) * _numChains); |
} | } |
| |
_HashTableBase::_HashTableBase(const _HashTableBase& x) |
_HashTableRep::_HashTableRep(const _HashTableRep& x) |
{ | { |
_size = 0; | _size = 0; |
_numChains = 0; | _numChains = 0; |
|
|
operator=(x); | operator=(x); |
} | } |
| |
_HashTableBase::~_HashTableBase() |
_HashTableRep::~_HashTableRep() |
{ | { |
clear(); | clear(); |
delete [] _chains; | delete [] _chains; |
} | } |
| |
_HashTableBase& _HashTableBase::operator=(const _HashTableBase& x) |
_HashTableRep& _HashTableRep::operator=(const _HashTableRep& x) |
{ | { |
if (this == &x) | if (this == &x) |
return *this; | return *this; |
|
|
return *this; | return *this; |
} | } |
| |
void _HashTableBase::clear() |
void _HashTableRep::clear() |
{ | { |
for (Uint32 i = 0; i < _numChains; i++) | for (Uint32 i = 0; i < _numChains; i++) |
{ | { |
|
|
memset(_chains, 0, sizeof(_BucketBase*) * _numChains); | memset(_chains, 0, sizeof(_BucketBase*) * _numChains); |
} | } |
| |
Boolean _HashTableBase::insert( |
Boolean _HashTableRep::insert( |
Uint32 hashCode, | Uint32 hashCode, |
_BucketBase* bucket, | _BucketBase* bucket, |
const void* key) | const void* key) |
|
|
return true; | return true; |
} | } |
| |
const _BucketBase* _HashTableBase::lookup( |
const _BucketBase* _HashTableRep::lookup( |
Uint32 hashCode, | Uint32 hashCode, |
const void* key) | const void* key) |
{ | { |
|
|
return 0; | return 0; |
} | } |
| |
Boolean _HashTableBase::remove(Uint32 hashCode, const void* key) |
Boolean _HashTableRep::remove(Uint32 hashCode, const void* key) |
{ | { |
for (Uint32 i = 0; i < _numChains; i++) | for (Uint32 i = 0; i < _numChains; i++) |
{ | { |