I'm attempting to implement my own generic hash table using separate chaining. I'm using the std::hash() method to create my hash function. I noticed in the description of std::hash() that:
For two different parameters k1 and k2 that are not equal, the probability that std::hash()(k1) == std::hash()(k2) should be very small, approaching 1.0/std::numeric_limits::max()
Does this mean that given any two unequal strings, std::hash() will more than likely not select the same bucket? Does this mean my attempt to implement the hash table using separate chaining is moot considering this?
I'm implementing my hash table as a vector of lists. I thought there would be more collisions and therefore more elements in each list, but using the above function pretty much always gives me only one element in each list.
Please let me know if I'm misunderstanding this. Thanks.