first question: does boost or other already have a hash table implementation?
if not, then second question: it should presumably be a class template HashTable<T>, then the constructor will have to feed it a hash function, including mapping T objects into unsigned int, right?