5 ms·
If you do that 10 times for all members of your struct, do you get good uniformly distributed keys? This post doesn't think so: https://stackoverflow.com/quest
by sicp-enjoyer 4y ago
If you do that 10 times for all members of your struct, do you get good uniformly distributed keys?
This post doesn't think so: https://stackoverflow.com/questions/5889238/why-is-xor-the-default-way-to-combine-hashes https://stackoverflow.com/questions/5889238/why-is-xor-the-d...
- int_19h 4y agoXOR is a bad way to do it, but there are ones that work much better that are described in answers to that post, and it's what other languages use in similar situations (e.g. tuples in Python and C#): https://github.com/python/cpython/blob/71db5dbcd714b2e1297c43538188dd69715feb9a/Objects/tupleobject.c#L318-L342 https://github.com/python/cpython/blob/71db5dbcd714b2e1297c4...
- sicp-enjoyer 4y agoYes, and eventually you start computing another hash of the buffer of the concatenated members. I'm not saying it can't be done, I'm just comparing it with recursive memberwise comparison.