Constructing a PrehashedString class

Now that we have the hash function we create a class for pre-hashed strings. It consists of the following:

  • A constructor which takes raw string as parameter and calculates the hash at construction.
  • Comparison operators.
  • A get_hash() member function which returns the hash.
  • An overload of std::hash() which simply returns the hash value. This overload is used by std::unordered_map, std::unordered_set or any other STL class which uses hash values. To put it simply, this makes the STL container aware that it exists a hash function for the PrehashedString.

Here is a basic implementation of a PrehashedString class:

class PrehashedString { public: template <size_t N> constexpr PrehashedString(const char(&str)[N]) ...

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.