2012年12月20日

抛出类类型的异常

摘要: 异常抛出后,被选中的处理代码是调用链中与该对象类型匹配且离抛出异常位置最近的那个。如果抛出的异常对象是一个数组,将转换为指向数组首元素的指针;如果抛出的是一个函数,则转换为指向该函数的指针。抛出throw之后,跟在throw后面的语句不会继续执行。控制将从throw转移到匹配的catch。该catch可以是同一函数中局部的catch,也可以在直接或间接调用发生异常的函数的另一个函数中。因为在处理异常的时候会释放局部存储,所以被抛出的对象就不能再局部存储,而是用throw表达式初始化一个称为异常对象(exception object)的特殊对象。异常对象由编译器管理,而且保证驻留在可能被激活的任 阅读全文

posted @ 2012-12-20 17:54 zhuyf87 阅读(1316) 评论(0) 推荐(0) 编辑

散列表查找的性能分析

摘要: 散列表的查找过程基本上和造表过程相同。一些关键字可通过散列函数转换的地址直接找到,另一些关键字在散列函数得到的地址上产生了冲突,需要按处理冲突的方法进行查找。在处理冲突的方法中,产生冲突后的查找仍然是给定值与关键码进行比较的过程。所以,对散列表查找效率的量度,依然用平均查找长度来衡量。查找过程中,关键字的比较次数,取决于产生冲突的多少,产生的冲突少,查找效率就高,产生的冲突多,查找效率就低。因此,影响产生冲突多少的因素,也就是影响查找效率的因素。影响产生冲突多少有以下三个因素:1. 散列函数是否均匀;2. 处理冲突的方法;3. 散列表的装填因子。散列表的装填因子定义为:α = 填入表中的元素个 阅读全文

posted @ 2012-12-20 13:04 zhuyf87 阅读(798) 评论(0) 推荐(0) 编辑

散列表的简单实现(大话数据结构)

摘要: #include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */#define SUCCESS 1#define UNSUCCESS 0#define HASHSIZE 12 /* 定义散列表长为数组的 阅读全文

posted @ 2012-12-20 12:42 zhuyf87 阅读(903) 评论(0) 推荐(1) 编辑

c++异常处理

摘要: 通过异常处理,可以将问题的检测和问题的解决分离,这样程序的问题检测部分可以不必了解如何处理问题。由问题检测部分抛出一个异常对象给问题处理代码,通过这个对象的类型和内容,两个部分能够就出现了什么错误进行通信。Sales_item operator+(const Sales_item& lhs, const Sales_item& rhs){ if (!lhs.same_isbn(rhs))throw runtime_error(“Data must refer to same ISBN”); // ok, if we’re still here the ISBNs are the 阅读全文

posted @ 2012-12-20 12:00 zhuyf87 阅读(254) 评论(0) 推荐(0) 编辑

导航