#ifndef HASH_UTILITY_H #define HASH_UTILITY_H #include #include #include #include using namespace std; class sum_of_components_hash{ public: std::size_t operator () (const string & str) const; }; class polynomial_hash{ public: polynomial_hash(); polynomial_hash(int a):a_(a){} std::size_t operator () (const string & str) const; private: int a_; }; class cyclic_hash{ public: cyclic_hash(); cyclic_hash(int sh):sh_(sh){} std::size_t operator() (const string & str) const; private: int sh_; }; #endif