33 #define HASH_MIN_SIZE 4
34 #define HASH_SHRINK_LIMIT (buckets >> 2)
35 #define HASH_EXPAND_LIMIT ((buckets >> 1) + (buckets >> 2))
36 #define HASH_LOCATION(code) ((code) & (buckets - 1))
40 template <
class type_t>
class hash;
46 template <
class type_t>
69 template <
class type_t>
116 template <
class type_t>
128 type_t *
put (
char *, type_t *);
129 type_t *
get (
char *);
130 type_t *
del (
char *);
143 template <
class type_t>
hashentry< type_t > * _last
type_t * currentVal(void)
type_t * put(char *, type_t *)
int(* equals)(char *, char *)
hashentry< type_t > * _first
hashentry< type_t > ** entry
unsigned(* keylen)(char *)
hash(int size=HASH_MIN_SIZE)
void add(hashentry< type_t > *e)
hashentry< type_t > * _current
hashbucket< type_t > ** table