1. #include <hash_set>
  2. #include <iostream>
  3. using namespace std;
  4. int main()
  5. {
  6. hashtable<int,
  7. int,
  8. hash<int>,
  9. identify<int>,
  10. equal_to<int>,
  11. alloc> iht(,hash<int>,equal_to<int>()); //指定保留50个bucket(桶)
  12. cout<<iht.size()<<endl; //
  13. cout<<iht.bucket_count()<<endl; //53这是STL提供的最小质数
  14. cout<<iht.max_bucket_count()<<endl; //
  15.  
  16. iht.insert_unique();
  17. iht.insert_unique();
  18. iht.insert_unique();
  19. iht.insert_unique();
  20. iht.insert_unique();
  21. iht.insert_unique();
  22. cout<<iht.size()<<endl; //6,此即hashtable<T>::num_elements
  23.  
  24. /*一下声明一个hashtable迭代器*/
  25. hashtable<int,
  26. int,
  27. hash<int>,
  28. identify<int>,
  29. equal_to<int>,
  30. alloc>::iterator ite = iht.begin();
  31.  
  32. for(int i = ;i<iht.size();i++,ite++)
  33. cout<< *ite<<<' '; //输出:53 55 2 108 59 63 并没有顺序
  34. cout<<endl;
  35.  
  36. /*遍历所有buckets,如果其节点个数不为0,就打印节点个数,为0不打印*/
  37. for(int i = ;i<iht.bucket_count();i++)
  38. {
  39. int n = iht.elem_in_bucket(i);
  40. if(n!=)
  41. cout<<"bucket["<<i<<"] has"<<n<<" elems."<<endl;
  42. }
  43. /*
  44. 输出:
  45. bucket[0] has 1 elems.
  46. bucket[2] has 3 elems.
  47. bucket[6] has 1 elems.
  48. bucket[10] has 1 elems.
  49. */
  50.  
  51. /*为了验证“bucket(list)”的容量就是buckets vector的大小(这是从
  52. hashtable<T>::resize()得知的结果),我刻意将元素加到54个,
  53. 看看是否发生重建表*/
  54.  
  55. for(int i = ;i<;i++)
  56. iht.insert_equal(i);
  57. cout<<iht.size()<<endl; //
  58. cout<<iht.buck_count()<<endl; //97确实扩容了(重建)
  59.  
  60. for (inti; i<iht.bucket_count();i++ )
  61. {
  62. int n = iht.elems_in_bucket(i);
  63. if(n!=)
  64. cout<<"bucket["<<i<<"] has"<<n<<" elems."<<endl;
  65. }
  66. /*打印的结果
  67. bucket[2]到bucket[11]的节点个数为2
  68. 其余的bucket[0]~bucket[47]的节点个数为1
  69. 此外,bucket[53],[55],[59],[63]的节点个数均为1*/
  70.  
  71. /*以迭代器变量hashtable,将所有节点打印出来*/
  72. ite = iht.begin();
  73. for(int i = ;i<iht.size();i++,ite++)
  74. cout<< *ite<<<' ';
  75. cout<<endl;
  76.  
  77. cout<<*(iht.find())<<endl;//
  78. cout<<iht.count()<<endl;//
  79. return ;
  80. }

hashtable的运用实例的更多相关文章

  1. C# 哈希表(Hashtable)用法笔记

    一.什么是Hashtable? Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对.它使用键来访问集合中的元素. 当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值.哈 ...

  2. HashTable类

    HashTable类不紧可以像Vector类一样动态的存储一系列的对象,而且对存储的每一个对象(称为值)都安排另一个对象(称为关键字)与它相关联. 用做关键字的类必须覆盖Object.hashCode ...

  3. ASP.NET 缓存技术分析

    缓存功能是大型网站设计一个很重要的部分.由数据库驱动的Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能.可能的情况下尽量使用缓存,从内存中返回数据的速度始终比去数据库查的速度快,因而可以大 ...

  4. ASP.NET Cache

    ASP.NET为了方便我们访问Cache,在HttpRuntime类中加了一个静态属性Cache,这样,我们就可以在任意地方使用Cache的功能. 而且,ASP.NET还给它增加了二个“快捷方式”:P ...

  5. 细说 ASP.NET Cache 及其高级用法

    许多做过程序性能优化的人,或者关注过程程序性能的人,应该都使用过各类缓存技术. 而我今天所说的Cache是专指ASP.NET的Cache,我们可以使用HttpRuntime.Cache访问到的那个Ca ...

  6. Log4net 配置注意事项

    1. 首先引入Log4net程序集 2.修改webconfig配置文件 在 configuration 节点下面添加如下节点 <configSections> <section na ...

  7. 细说 ASP.NET Cache 及其高级用法【转】

    阅读目录 开始 Cache的基本用途 Cache的定义 Cache常见用法 Cache类的特点 缓存项的过期时间 缓存项的依赖关系 - 依赖其它缓存项 缓存项的依赖关系 - 文件依赖 缓存项的移除优先 ...

  8. C#基础复习(4) 之 浅析List、Dictionary

    参考资料 [1] .netCore 源码 https://github.com/dotnet/corefx [2] <Unity 3D脚本编程 使用C#语言开发跨平台游戏>陈嘉栋著 [3] ...

  9. [转]细说 ASP.NET Cache 及其高级用法

    本文转自:http://www.cnblogs.com/fish-li/archive/2011/12/27/2304063.html 阅读目录 开始 Cache的基本用途 Cache的定义 Cach ...

随机推荐

  1. linux监控下几个系统工具

    1.top 2.htop(yum install -y htop) 3.glances(yum install -y glances) 4.dstat -l -c -m -d  -r -n --top ...

  2. mysql备份

    工具 mysql mysqldump 应用举例 导出 命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 脚本名; 1.导出数据库为dbname的表结构(其中用戶名 ...

  3. Sql Server的艺术(三) SQL聚合函数的应用

    SQL提供的聚合函数有求和,最大值,最小值,平均值,计数函数等. 聚合函数及其功能: 函数名称 函数功能 SUM() 返回选取结果集中所有值的总和 MAX() 返回选取结果集中所有值的最大值 MIN( ...

  4. ZOJ 3557 & BZOJ 2982 combination[Lucas定理]

    How Many Sets II Time Limit: 2 Seconds      Memory Limit: 65536 KB Given a set S = {1, 2, ..., n}, n ...

  5. 一、爬虫的基本体系和urllib的基本使用

    爬虫 网络是一爬虫种自动获取网页内容的程序,是搜索引擎的重要组成部分.网络爬虫为搜索引擎从万维网下载网页.一般分为传统爬虫和聚焦爬虫. 爬虫的分类 传统爬虫从一个或若干初始网页的URL开始,获得初始网 ...

  6. Python中的浅拷贝与深拷贝

    编者注:本文主要参考了<Python核心编程(第二版)> 以下都是参考资料后,我自己的理解,如有错误希望大家不吝赐教. 大家有没有遇到这样一种情况,对象赋值后,对其中一个变量进行修改,另外 ...

  7. CSS小技巧使用

    1.清除浮动 浮动给我们的代码带来的麻烦,想必不需要多说,我们会用很多方式来避免这种麻烦,其中我觉得最方便也是兼容性最好的一种是....// 清除浮动 .clearfix{ zoom: 1; } .c ...

  8. 企业Nginx+Keepalived双主架构案例实战

    通过上一次课程的学习,我们知道Nginx+keepalived主从配置,始终有一台服务器处于空余状态,那如何更好的利用起来呢,我们需要借助Nginx+keepalived双主架构来实现,如下图通过改装 ...

  9. selenium2 python自动化测试实战(回归测试)

    selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重 ...

  10. [Swift]UIKit学习之警告框:UIAlertController和UIAlertView

    Important: UIAlertView is deprecated in iOS 8. (Note that UIAlertViewDelegate is also deprecated.) T ...