www.pudn.com > calc5.zip > htab.h


#if !defined HTAB_H 
#define HTAB_H 
//------------------------------------ 
//  htab.h 
//  (c) Bartosz Milewski, 1994 
//------------------------------------ 
#include "vlist.h" 
#include  
 
// Hash table of strings 
 
class HTable 
{ 
public: 
    explicit HTable (int size): _size(size) 
    { 
        _aList = new List [size]; 
    } 
 
    ~HTable () 
    { 
        delete [] _aList; 
    } 
 
    void Add (char const * str, int id); 
public: 
	class Seq: public List::Seq 
	{ 
	public: 
		Seq (HTable const & htab, char const * str) 
			: List::Seq (htab.Find (str)) {} 
	}; 
 
	friend Seq; 
private: 
    List const & Find (char const * str) const; 
    int hash (char const * str) const; 
 
    List * _aList; 
    int			_size; 
}; 
 
#endif