I recently read a post about a set of probabilistic data structures for dealing with, among other things, set membership. In particular this was the first time I had read about a Bloom Filter, and so I decided to craft myself an exercise where I could simultaneously explore a new data structure and C++ 11 syntax, which I am still adapting to.

Code can be found here. Supporting files are here.

This paper provides an analysis of false positive rates. The Wikipedia article might also help.