上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 25 下一页
摘要: 【1】什么是模板方法模式? 又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 【2】模板方法模式代码示例: 代码示例1: 1 #include <iostream> 2 #include <stri 阅读全文
posted @ 2014-08-28 21:26 kaizenly 阅读(348) 评论(0) 推荐(0)
摘要: 【1】什么是原型模式? 原型模式即复制,或者克隆模式。 【2】原型模式代码示例: 代码示例1: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 class Prototype 6 { 7 private: 8 阅读全文
posted @ 2014-08-28 21:15 kaizenly 阅读(260) 评论(0) 推荐(0)
摘要: 【1】什么是工厂方法模式? 定义一个创建产品对象的工厂接口(IFactory),将实际创建工作推迟到子类(addFactory、subFactory、mulFactory、divFactory)当中。 核心工厂类(IFactory)不再负责产品的创建,仅作为一个抽象(有纯虚方法)工厂角色,只负责声明 阅读全文
posted @ 2014-08-28 20:35 kaizenly 阅读(442) 评论(0) 推荐(0)
摘要: 【1】什么是代理模式? 为其他对象提供一种代理,并以控制对这个对象的访问。 【2】代理模式代码示例: 示例代码: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 class SchoolGirl 6 { 7 p 阅读全文
posted @ 2014-08-28 20:18 kaizenly 阅读(270) 评论(0) 推荐(0)
摘要: 【1】什么是装饰模式? 装饰模式:动态地给一个对象添加一些额外的职责。 【2】装饰模式代码示例: 代码如下: 1 #include <string> 2 #include <iostream> 3 using namespace std; 4 5 class Person 6 { 7 private 阅读全文
posted @ 2014-08-27 08:57 kaizenly 阅读(221) 评论(0) 推荐(0)
摘要: 【1】什么是策略模式? 坊间的解释都比较拗口,而且不好理解。 所谓策略模式,先构建一个策略(即子类的实例),再利用这个具体的实例构建一个策略对象,通过调用策略对象的接口可以达到相应具体策略的结果。 【2】策略模式代码示例 代码示例: 1 /* 2 * 策略模式 3 */ 4 5 #include < 阅读全文
posted @ 2014-08-26 22:35 kaizenly 阅读(573) 评论(0) 推荐(0)
摘要: 【1】什么是简单工厂模式? 核心思想:创建一个具体工厂角色,根据客户端输入的条件产生相应的实体对象,然后由不同实体对象对virtual操作方法的调用得到不同的结果。 理解:根据条件生成不同的实例。利用多态的特性,调用同名方法,不同的实例将得到不同的结果。 【2】代码示例如下: 代码如下: Good 阅读全文
posted @ 2014-08-26 21:48 kaizenly 阅读(485) 评论(0) 推荐(0)
摘要: 【1】程序1 【2】程序2 【3】程序3 备注:一切皆在代码中。 总结:const修饰成员函数,也属于函数重载的一种范畴。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2014-03-24 23:06 kaizenly 阅读(2976) 评论(0) 推荐(0)
摘要: 【1】程序1 main函数中的两句代码看上去大意差不多,差别就在于一个是引用而一个不是引用,然后结果却相去甚远,大家明白这是为什么吗? 大家在看到结果的时候第一反应一定是这两个看似相同的对象却调用了不同的方法(print()),想到这里说明已经足够产生了疑问。 那么我们来看这中间到底发生了什么呢? 阅读全文
posted @ 2014-03-23 09:54 kaizenly 阅读(2234) 评论(0) 推荐(0)
摘要: 【1】 const_cast的作用 一、常量指针 被强转为 非常量指针,且仍然指向原来的对象; 二、常量引用 被强转为 非常量引用,且仍然指向原来的对象; 三、常量对象 被强转为 非常量对象。 【2】 实例代码 代码如下: Good Good Study, Day Day Up. 顺序 选择 循环 阅读全文
posted @ 2014-03-21 23:38 kaizenly 阅读(8884) 评论(0) 推荐(0)
摘要: 【1】“=”符号 (1)“=”作为比较符。但是,当定义const常量时,“=”又表示赋值符号。而“:=”作为赋值符号。 (2)“=”只表示赋值符号 【2】结构体 (1)record 作为结构体 (2)struct 作为结构体 【3】继承 (1)子类名 = class(父类名)(同时注意这里的“=”也... 阅读全文
posted @ 2014-03-15 23:14 kaizenly 阅读(1569) 评论(0) 推荐(0)
摘要: F1 查看帮助 F2 跳转到函数定义 Shift + F2 声明 和 定义 之间切换 F4 头文件 和 源文件 之间切换 Alt + 0 显示或者隐藏侧边条,编辑模式下起作用(有时写的函数太长,屏幕不够大,就用这个) Ctrl + Space 自动补全(貌似会和输入法的切换冲突) ESc 切换到编辑 阅读全文
posted @ 2014-02-25 18:26 kaizenly 阅读(1230) 评论(0) 推荐(0)
摘要: 【1】为什么需要平衡二叉树? 矛盾是推进事物向前发展的源动力。 那么平衡二叉树是从哪里来?肯定是有矛盾存在的。请看下面的分析: 【2】什么是平衡二叉树? 平衡二叉树的基本认识: 【3】平衡二叉树的构建原理 平衡二叉树的形成肯定是有一定规律可循的,那么平衡二叉树的“生长”原理是什么呢? 请看程老师下面 阅读全文
posted @ 2013-12-10 13:56 kaizenly 阅读(1482) 评论(3) 推荐(1)
摘要: 【1】二叉排序树二叉排序树,又称为二叉查找树。它或者是一棵空树,或者具有下列性质:1. 若它的左子树不空,则左子树上所有的结点的值均小于它的根结点的值;2. 若它的右子树不空,则右子树上所有的结点的值均大于它的根结点的值;3. 它的左右子树也分别为二叉排序树。【2】二叉排序树的代码实现结合下图以及实现代码分析(1)构建二叉排序树(2)实现代码 1 #include 2 using namespace std; 3 4 template class BST; 5 6 template 7 class BstNode 8 { 9 friend class BS... 阅读全文
posted @ 2013-12-10 11:12 kaizenly 阅读(915) 评论(0) 推荐(0)
摘要: 【1】线性索引索引就是把一个关键字与它对应的记录相关联的的过程。索引是为检索而存在的。一个索引由若干个索引项构成,每个索引项至少应包含关键字和其对应的记录在存储器中的位置等信息。索引技术是组织大型数据库以及磁盘文件的一种重要技术。索引按照结构可以分为线性索引,树形索引和多级索引。所谓线性索引就是将索引项集合组织为线性结构,也称为索引表。重点了解三种线性索引:稠密索引,分块索引和倒排索引。【2】稠密索引稠密索引是指在线性索引中,将数据集中的每个记录对应一个索引项。所下图所示:对于稠密索引这个索引表而言,索引项一定是按照关键码有序的排列。为什么要这样做呢?索引项有序也就意味着,我们要查找关键字时, 阅读全文
posted @ 2013-12-09 10:58 kaizenly 阅读(5377) 评论(2) 推荐(1)
摘要: 【1】查找概论 查找表是由同一类型是数据元素(或记录)构成的集合。 关键字是数据元素中某个数据项的值,又称为键值。 若此关键字可以唯一标识一个记录,则称此关键字为主关键字。 查找就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。查找分为两类:静态查找表和动态查找表。 静态查找表:只作查找操作的查找表。主要操作: (1)查询某个“特定的”数据元素是否在查找表中。 (2)检索某个“特定的”数据元素和各种属性。 动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经已经存在的某个数据元素。 主要操作: (1)查找时插入数据元素。 (2)查找时删 阅读全文
posted @ 2013-12-08 01:03 kaizenly 阅读(14110) 评论(0) 推荐(0)
摘要: 【1】关键路径 在我的经验意识深处,“关键”二字一般都是指临界点。 凡事万物都遵循一个度的问题,那么存在度就会自然有临界点。 关键路径也正是研究这个临界点的问题。 在学习关键路径前,先了解一个AOV网和AOE网的概念: 用顶点表示活动,用弧表示活动间的优先关系的有向图: 称为顶点表示活动的网(Act 阅读全文
posted @ 2013-12-06 16:26 kaizenly 阅读(45984) 评论(6) 推荐(2)
摘要: 【1】拓扑排序在一个表示工程的有向图中,有顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称为AOV网。AOV网中的弧表示活动之间存在的某种制约关系。所谓拓扑排序,其实就是对一个有向图构造拓扑序列的过程。【2】拓扑排序算法对AOV网进行拓扑排序的基本思路:从AOV网中选择一个入度为0的顶点输出;然后删除此顶点,并删除以次顶点为尾的弧;继续重复此操作.....直到输出全部顶点或AOV网中不存在入度为0的顶点为止。由于拓扑排序过程中,需要删除顶点,显然用邻接表更加方便。因此我们需要为AOV网建立一个邻接表。另外,考虑到算法过程中始终需要查找入度为0的顶点?需要在原顶点 阅读全文
posted @ 2013-12-05 19:31 kaizenly 阅读(27916) 评论(0) 推荐(0)
摘要: 【1】为什么需要弗洛伊德算法?带权图中单个源点到所有顶点的最短路径问题可以用《迪杰斯特拉算法》求解。那如果要求图中每一个顶点与其它顶点之间的最短路径呢?类似可以想到的方法为:每次以一个顶点为源点,重复执行地杰斯特拉算法算法n次。这样,理论上我们便可以求得每一个顶点与其它顶点的最短路径,总的执行时间为O(n3)。好吧!为了实现这个中需求,可以采用另外一种求解算法:弗洛伊德算法。为了更好的理解弗洛伊德算法的精妙,我们先看简单的案例。如下图是一个最简单的3个顶点连通网图:【2】弗洛伊德算法弗洛伊德算法是非常漂亮的算法,简洁直观大气上档次。不过很可惜由于它的三重循环,因此也是O(n*n*n)的时间复杂 阅读全文
posted @ 2013-12-05 16:14 kaizenly 阅读(25740) 评论(2) 推荐(2)
摘要: 【1】最短路径 最短路径?别乱想哈,其实就是字面意思,一个带边值的图中从某一个顶点到另外一个顶点的最短路径。 官方定义:对于内网图而言,最短路径是指两顶点之间经过的边上权值之和最小的路径。并且我们称路径上的第一个顶点为源点,最后一个顶点为终点。由于非内网图没有边上的权值,所谓的最短路径其实是指两顶点之间经过的边数最少的路径。 别废话了!整点实际的哈,你能很快计算出下图中由源点V0到终点V8的最短路径吗? 【2】迪杰斯特拉算法 迪杰斯特拉算法是按路径长度递增的次序产生最短路径的思路求解。 具体算法及其详细讲解如下:阅读程序前,先要搞明白几个数组作用: final[w]=1; 表示V0到Vw顶点已 阅读全文
posted @ 2013-12-05 00:56 kaizenly 阅读(88178) 评论(17) 推荐(11)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 25 下一页
打赏