本文整理汇总了C++中HashMap::keys方法的典型用法代码示例。如果您正苦于以下问题:C++ HashMap::keys方法的具体用法?C++ HashMap::keys怎么用?C++ HashMap::keys使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HashMap
的用法示例。
在下文中一共展示了HashMap::keys方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
size_t nkeys = (1 << 16);
size_t nlookup = 100000;
double lf = 0.75;
if (argc >= 2)
{
int n;
if (sscanf(argv[1], "%d", &n) == 1)
{
std::cout << "Use " << n << " keys" << std::endl;
nkeys = size_t(n);
}
}
if (argc >= 3)
{
int l;
if (sscanf(argv[2], "%d", &l) == 1)
{
std::cout << "Do " << l << " lookups" << std::endl;
nlookup = size_t(l);
}
}
if (argc >= 4)
{
double d;
if (sscanf(argv[3], "%lf", &d) == 1)
{
std::cout << "Use max load factor: " << d << std::endl;
lf = d;
}
}
size_t ndups = 0;
std::cout << "Testing insertion and search with " << nkeys << " keys" << std::endl;
HashMap<std::string, std::string> hmap;
hmap.setMaxLoadFactor(lf);
std::vector<std::string> allKeys;
allKeys.resize(nkeys);
for (size_t i=0; i<nkeys; ++i)
{
std::string s = RandomString();
allKeys[i] = s;
if (!hmap.insert(s, s))
{
std::cout << "Duplicate key found: \"" << s << "\"" << std::endl;
++ndups;
}
}
std::cout << hmap.size() << " entries (" << ndups << " keys were duplicate)" << std::endl;
std::cout << "Load Factor of " << hmap.loadFactor() << std::endl;
for (size_t i=0; i<nkeys; ++i)
{
size_t ik = rand() % nkeys;
const std::string &k = allKeys[ik];
const std::string &v = hmap[k];
if (v != k)
{
throw std::runtime_error("key/value mistmatch");
}
}
HashMap<std::string, std::string>::KeyVector keys;
HashMap<std::string, std::string>::ValueVector vals;
hmap.keys(keys);
hmap.values(vals);
assert(hmap.size() == keys.size());
assert(hmap.size() == vals.size());
for (size_t i=0; i<hmap.size(); ++i)
{
if (keys[i] != vals[i])
{
throw std::runtime_error("key/value pair mismatch");
}
}
{
HashMap<std::string, std::string> hmap;
std::map<std::string, std::string> smap;
size_t numhits = 0;
hmap.setMaxLoadFactor(lf);
std::vector<std::string> allKeys, extraKeys;
std::string val;
allKeys.resize(nkeys);
extraKeys.resize(nkeys);
//.........这里部分代码省略.........