自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

耗纸的博客

没事看看书,学学习,扯扯淡

  • 博客(9)
  • 收藏
  • 关注

原创 C++设计模式<五>:Observe观察者模式

1.动机在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好滴抵御变化2.模式定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(object)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。3.例子看一个文件分割器的例子(以前磁盘小,经常需要文件

2016-04-09 15:14:54 1619

原创 C++设计模式<四>:策略模式(Strategy)

1.动机在软件构件过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。2.模式定义定义一系列算法,把它们一个个封装起来,并且使它们可相互替换(变化)。该模式使得算法可独立使用它的客户程序(稳定)而变化(扩展,子变化)3.例子说明以下是一个关于各国税务的相关计算。 先看解法一(伪代码)enum TaxBa

2016-04-08 01:16:17 1063

原创 STL与泛型编程<十八>:STL算法之非变动性算法(Nonmodifying algorithm)

1.元素计数(count和count_if)count声明:template <class InputIterator, class T>typename iterator_traits<InputIterator>::difference_type //返回值 count (InputIterator first, InputIterator last, const T& val){

2016-04-07 20:22:49 427

原创 C++设计模式<三>:模板方法(Template Method 模式)

模式分类1. GOF-23模式分类 从目的来看: 创建型(Creational)模式:将对象的部分创建工作延迟到子类或其他对象,从而应对需求变化为创建时类型实现引来的冲击 结构性(structural)模式:通过类继承或对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击 行为性(behavioral)模式:通过对类继承或对象组合来划分类与对象间的职责,从而应对需

2016-04-07 18:32:08 589

原创 C++设计模式<二>:面向对象设计原则

面向对象设计变化是复用的天敌,而面向对象设计的最大优势就是抵御变化面向对象设计原则1.依赖倒置关系(DIP) 高层模块(稳定)不应该依赖于底层模块(变化),二者都应该依赖于抽象(稳定) 抽象(稳定)不应该依赖于实现细节,实现细节应该依赖于抽象(稳定) 如上节 C++设计模式<一>:简介中的例子 其中MainForm(高层模块)应该是稳定的,而第一种方案(分解模式)却依赖于Lin

2016-04-07 15:46:33 1336

原创 C++设计模式<一>:简介

什么是设计模式每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,这样,你就能一次又一次地使用该方案而不必做重复劳动两种思维底层思维 底层思维:向下,从微观角度理解对象构造 如语言构造,编译转换,内存模型,运行时机制等(我表示我还在底层思维上奋斗);其中向下需要深入理解三大面向对象机制:封装,隐藏内部实现继承,复用现有代码多态,改写对象行为抽象思维 抽象思维:

2016-04-07 01:27:57 631 5

原创 STL与泛型编程<十七>:STL算法简介及for_each()算法

首先使用STL算法,有几个头文件需要说明下#include <algorithm> //算法#include <numeric> //数值处理#include <functional> //仿函数或函数适配器简介所有的STL算法都用来处理一个或多个迭代器区间,第一个区间通常以起点和终点来表示,其他区间一般只需要提供起点就好;STL算法采用覆盖(overwrite)而非安

2016-04-06 23:40:19 2389

原创 STL与泛型编程<十五>:预定义的仿函数和仿函数适配器

如下图,STL中预定于的这些仿函数 使用请先头文件#include 由上图可以看出,总的来说可以分成一元仿函数(只有一个参数)和二元仿函数(两个参数);又可以分为:算术类,相对关系类,逻辑运算类。函数适配器(Function Adapters)调用原理分析binder1st and bind1st目的在于将无法匹配的仿函数适配成可以匹配的型别,类似于生活中的插座。先看一个例子1:给定一个v

2016-04-04 21:59:44 1125

原创 STL与泛型编程<六>:map和multimap

Map和Multimap将key/value pair当作元素,进行管理。它们可根据key的排序准则自动将元素进行排序。其声明如下namespace std{ template<class key, class T, class Compare = less<key>, class Allocator = allocator<pair<const Key, T> > >

2016-04-04 21:22:48 1641

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除