可以较容易的用来替换准标准的hash_map和hash_set。
|
An extremely memory-efficient hash_map implementation, with only 2 bits/entry overhead.
| We've Moved! Google SparseHash is now hosted at code.google.com. Our new homepage is located athttp://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 This is by no means a complete example; it simply gives you a feel for what the Sparsehash API looks like. |
#include <iostream>
#include <google/sparse_hash_map>
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<const char*>, 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 << "september -> " << months["september"] << std::endl;
std::cout << "april -> " << months["april"] << std::endl;
std::cout << "june -> " << months["june"] << std::endl;
std::cout << "november -> " << months["november"] << std::endl;
return 0;
}
SparseHash是一个由Google维护的开源项目,提供多种哈希表实现,优化了内存使用和访问速度。该库适用于C++环境,包含不同特性的哈希表实现,如节省空间和提高速度等。
875

被折叠的 条评论
为什么被折叠?



