Hash tables
The hash table is the most efficient data structure currently available. It is based on the concept of vector indexing, which is a rather simple concept. Consider the following example of a large vector with list pointers:
std::vector<std::list<T> > hash_table;
Accessing the elements of a vector takes constant time – that is the primary superpower of a vector. The hash table enables us to use any type as the container’s key. The basic idea of the hash table is to use a well-curated hash function that will generate a unique index for the input key. For example, when we use a string as a hash table key, the hash table uses a hash function to generate the hash as the index value for the underlying vector (the code for this can be found at https://github.com/PacktPublishing/Expert-C-2nd-edition/tree/main/Chapter%2006/14_insert_hashtable.cpp).
Here is how we can illustrate a hash table:
Figure 6.18: Illustration of...