
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
目录前言Bridge设计模式模式动机示例模式定义模式结构前言在学习侯捷老师的有关设计模式的课程(李建忠老师主讲)中,老师对23种设计模式的有自己的划分,如下。所以老师讲解是按照这种顺序讲解。单一职责:Bridge设计模式模式动机由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个纬度的变化。所以Bridge模式的动机就是应对“多维度的变化”。看文字描述表枯燥,下面举几个例子:商城系统
目录前言前言在学习侯捷老师的有关设计模式的课程(李建忠老师主讲)中,老师对23种设计模式的有自己的划分,如下。所以老师讲解是按照这种顺序讲解。单一职责:
弄懂条件编译#if #ifdef 和#if defined

目录前言Observer1.使用场合2.示例1:文件分割进度显示3.示例24.GoF给出的模式定义5.模式结构6.要点总结前言在学习侯捷老师的有关设计模式的课程(李建忠老师主讲)中,老师对23种设计模式的有自己的划分,如下。所以老师讲解是按照这种顺序讲解。组件协作:Observer1.使用场合为某些对象建立一种“通知依赖关系”:即一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将
目录二叉树大家都非常熟悉,二叉树的遍历大家也不会陌生。用递归法来实现二叉树的“前中后序遍历”相对简洁,用几行代码就能实现,并且只需改变代码顺序就能实现3种遍历。与之相反,非递归(迭代)遍历方法实现“前中后序遍历”起来较为复杂,并且不太容易通过简单的交换代码的次序来实现3种遍历,当然,只是不太容易,并不是没有方法。下面就介绍统一的非递归(迭代)方法来是实现“前中后序遍历”。这个过程要使用栈的数据结构
想要计算一个二叉树的深度,我们先可以拆成求根结点的左右子树的深度;而根结点的左右子树的深度又可拆成求根左结点的左右子树深度和根右结点的左右子树的深度。这样一层一层给套下去,很容易想到递归。明确每一步重复的任务:计算节点左右子树的深度,并取其最大值。确认递归的形参和返回值:形参肯定为某节点的地址,不然算谁的子树高度呢!返回值当然为当前子树的最大深度。这里注意,我们算出了节点的左右子树深度的最大值时,
1. 明确每一步重复的任务:创建父结点,连接子结点(1)申请一块树节点的内存空间(2)将用户输入的数据赋值给申请的树节点(3)确认申请树节点的左右子节点,在此处递归调用2. 确认递归的形参和返回值函数形式1:若形参为空void,必定要返回值。返回当前结点地址,以便父结点连接;函数形式2:若形参为节点的地址,可以不用返回值,但是必须要用C++的引用特性;综上,可以有两种函数形式的递归实现。本文主要针
C++模板的特化及偏特化类模板全特化:对类中的某个成员函数进行特化处理类模板的偏特化范围偏特化函数模板全特化:函数模板偏特化:模板函数和模板类有的时候可能需要对传入的不同类型进行不同的处理,比如说有的模板传入int或double类型都可以处理,但是传入char型则会出错,这时就需要模板特化的方式。类模板全特化:全特化即将模板类型里的所有类型参数全部具体指明之后处理,如下template<ty
decltype用法auto和decltype推导类型的区别decltype用法:1.decltype变量2.==decltype表达式==2.1 表达式做右值2.2 表达式能做左值3. decltype 函数3.1 decltype(f())3.2 decltype(f)C++ 11 中decltype的主要作用auto和decltype推导类型的区别在中,我介绍了auto的用法及其实际编程中的
大小顶堆的实现什么是大顶堆和小顶堆大小顶堆的底层实现代码实现小顶堆定义小顶堆类构造函数插入扩大堆数组容量删除析构函数代码实现大顶堆测试什么是大顶堆和小顶堆堆是一种完全二叉树。完全二叉树的定义:所有节点从上往下,从左往右的依次排列,不能有空位置,是为完全二叉树。下面是完全二叉树和不完全二叉树的示意图:大顶堆定义:父节点都大于左右子节点。小顶堆定于:父节点都小于左右子节点。二者示意图如下:大小顶堆的底







