Proposal: Add hash sets to the standard library
travv0 opened this issue · 3 comments
Hash sets can be currently be done using AutoHashMap(K, void) but I'd argue that an actual hash set type would make working with them much nicer. Using a hash map, you have to explicitly access the key member of an Entry to get the value (and I sometimes accidentally try value first instead since when used as a set, the keys are the values), pass {} as the value every time you add something, and you have member functions that are meaningless when using it as a set. With a HashSet type you wouldn't have that cruft, and specific operations for working with sets could even be added if desired.
I wonder why this proposal is still awaiting approval. It doesn't seem to incur any harm to the standard library.
Personally, I am currently not sure what's the best way to perform quick Set O(n) computations, such as difference, intersection, union, etc. with AutoHashMap alone
Meanwhile, the author of the well-regarded golang-set library is writing ziglang-set.