软件设计模式课程设计
《软件设计模式课程设计》由会员分享,可在线阅读,更多相关《软件设计模式课程设计(11页珍藏版)》请在毕设资料网上搜索。
1、 1 2008 级软件设计模式课程设计级软件设计模式课程设计 (基于迭代器、适配器、策略模式的(基于迭代器、适配器、策略模式的 hashmap 设计)设计) 一、一、目的目的及及简要简要介绍介绍 大家都知道,C+为广大爱好者提供了诸如 Iterator、list 等容器供大家使用,大 大的方便了大家处理数据。这里,我们同样为大家提供一个满足 STL 要求的容 器来供大家使用,让大家在数据处理的过程中能更方便快捷。 C+标准对容器提出了许多需求,只有满足这些需求,才能算得上是 STL 容器。 基本 hashmap(散列表):STL 中的最大的疏忽吗?在 STL 中,没有定义 hashmap 容器
2、,这里 我们实现了。 散列表在平均情况下可以提供常量时间的插入、 删除和查找。 散列表并不是将元素有序地存 储,而是把各元素散列(hash)或映射至某个桶(bucket)。只要所存储的元素个数不比桶数大太 多,插入、删除和查找操作都能在常量时间内运行。 Hashmap 也存储键/值对,它提供的操作与 map 几乎一样,这个 hashmap 实现使用链式散列 (也称开放散列) ,而且没有提供诸如再散列等高级操作。 二、二、程序实现程序实现 Hashmap 的访问操作: 标准要求为键比较和值比较对象提供访问方法: Operator与 STL 中的 map 的原型相似。如果原来的 hashmap 中
3、没有该键对应的值,则 会插入一个,它会调用被映射的元素的默认构造函数进行填充,并且反回这个值。 模板的分离编译: 在模板类的声明文件(一般是.h 文件)的最后添加一个 include 语句,将模板类的实 现文件包含进来,例如: #include “template_class_implement.cpp” 将模板类的实现类文件从项目中移除(使工程中不含模板的实现文件 .cpp),但并不 从磁盘上移除,不改变其路径。使它不能显示的参与编译。 在声明 main 函数的文件中包含要使用的模板类的声明文件。 三、三、设计模式设计模式 2 四、四、相关相关内容内容 1、Hashmap 应当允许客户指定自
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 模式 课程设计
