Hacker News new | ask | show | jobs
by bacr 3805 days ago
Fun fact: they are nearly the same implementation. See: http://markmail.org/message/ktzomp4uwrmnzao6
1 comments

As one would generally expect, the backing store of most hashsets is little more than a hashmap with zero-sized/no values.

In fact, that's exactly how Rust's standard library hashset is implemented since rust supports zero-sized types "in userland" (and unit `()` is a ZST):

    pub struct HashSet<T, S = RandomState> {
        map: HashMap<T, (), S>
    }
http://doc.rust-lang.org/src/std/collections/hash/set.rs.htm...