http://goog-sparsehash.sourceforge.net/
An extremely memory-efficient hash_map implementation, with only 2 bits/entry overhead.
<!-- And divide remainder of this column into two sub-columns --> We've Moved! Google SparseHash is now hosted at code.google.com. Our new homepage is located at http://code.google.com/p/google-sparsehash. Overview The Google SparseHash project contains several hash-map implementations in use at Google, with different performance characteristics, including an implementation that optimizes for space and one that optimizes for speed. SparseHash is a template library; there are no binaries to install. SparseHash is distributed under the terms of the BSD License. For downloads, news, and other information, visit our Project Page Example <note>This is by no means a complete example; it simply gives you a feel for what the Sparsehash API looks like.</note><xmp> #include <iostream> #include <google> struct eqstr { bool operator()(const char* s1, const char* s2) const { return (s1 == s2) || (s1 && s2 && strcmp(s1, s2) == 0); } }; int main() { google::sparse_hash_map<const char int hash>, eqstr> months; months.set_deleted_key(NULL); months["january"] = 31; months["february"] = 28; months["march"] = 31; months["april"] = 30; months["may"] = 31; months["june"] = 30; months["july"] = 31; months["august"] = 31; months["september"] = 30; months["october"] = 31; months["november"] = 30; months["december"] = 31; std::cout " " " " </const></google></iostream></xmp> |