The SparseHash library contains several hash-map implementations, including implementations that optimize for space or speed. These hashtable implementations are similar in API to SGI's hash_map class and the tr1 unordered_map class, but with different performance characteristics. It's easy to replace hash_map or unordered_map by sparse_hash_map or dense_hash_map in C++ code. They also contain code to serialize and unserialize from disk.