摘要: 异常不是错误,异常是程序中可预料到的另一条执行分支,是可预见的。错误是不可预料的。 C++内置了异常处理的语法元素try...catch...,如下: C++通过throw语句抛出异常信息: 上图中throw 0抛出异常后,程序就立即返回了。return代表正常的返回,throw代表异常的返回值。 阅读全文
posted @ 2018-08-18 20:51 周伯通789 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 智能指针在开发中无处不在,智能指针就是用C++模板技术实现的一个类。 智能指针历史:为了解决内存泄漏 使用智能指针: 智能指针的设计方案: 通过类模板描述指针的行为 能够定义不同类型的指针对象 重载指针特征操作符(->和*) 利用对象模拟原生指针的行为 对象在生命周期结束的时候会调用析构函数,然后在 阅读全文
posted @ 2018-08-18 17:25 周伯通789 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 数据结构课程的特点: 专注于数据元素之间的关系 专注于特定结构之上的算法 数据结构课程并不关注数据元素的具体类型 既然数据结构只关心数据元素之间的关系,我们只需要抽象的考虑数据元素之间的关系以及算法,不用关心具体的数据类型,因此,支持泛型编程的语言最适合数据结构的学习。因此,我们重点关注C++中的模 阅读全文
posted @ 2018-08-18 01:43 周伯通789 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 数据结构该如何学习: 阅读全文
posted @ 2018-08-18 01:17 周伯通789 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 常见的时间复杂度如下: 常见的时间复杂度的比较: 实例分析: 从上图的分析中,最坏的情况更具有现实的意义。 当算法在最坏的情况下仍能满足需求时,可以推断,算法的最好情况和平均情况都满足要求。 在数据结构课程中,在没有特殊说明时,所分析算法的时间复杂度都是指最坏时间复杂度。 算法的空间复杂度: 空间复 阅读全文
posted @ 2018-08-18 00:15 周伯通789 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 判断一个算法的效率时,操作数量中的常数项和其他次要项常常可以忽略,只需要关注最高阶项就能得出结论。 如何用符号定性的判断算法的效率呢? 算法的复杂度: 时间复杂度: 算法运行后对时间需求量的定性描述。 空间复杂度: 算法运行后对空间复杂度的定性描述。 数据结构课程重点关注的是算法的效率问题,因此,整 阅读全文
posted @ 2018-08-18 00:00 周伯通789 阅读(353) 评论(0) 推荐(0) 编辑