从零开始编译Poco C++和VS2015环境配置 Poco C++是一个C++的开源框架,详细介绍可以问百度介绍更详细,这里我就记录下我从零编译poco-1.9.0和配置 VS2015的环境,以备不时之需。步骤:一、安装cmake; 二、编译poco-1.9.0; 三、将编译后的poco-1.9.0配置到VS2015的项目中; 四、示例简单示例。安装cmake我的电脑环境: win7 64位; cma...
观察者模式C++ 当对象间存在一对多的关系,当状态改变时,其他对象都得到通知,这就是观察者模式了。观察者模式实现发布-订阅功能。如我们有个项目叫NGI,需要召开StanUp会议,会议上需求变更时需要通过所有参加会议的人员,我们就可以使用观察者模式,其UML图如下: 其代码实现如下:#include <iostream>#include <list>#include <...
备忘录模式(C++) 下午无聊, 复习了下备忘录模式,顺便做个笔记,日后也许用得上那,对吧。备忘录模式:在不破坏封装的前提下,获取一个对象的内部状态,并在该对象之外包这个状态 。这样做的目的就是可以恢复该对象的状态。例如,我们的每个车的上不是有个radio吗?在夏天我们在开车时会开启空调,然后听听歌,将空调温度,播放歌曲音量调节到合适的数值,当下次开车时希望其恢复到上一次调节的状态,而不是重新调节温度和音量。...
文件拷贝(复制粘贴) 我们几乎天天用到复制粘贴,做开发人员的我们有没有想过其原理那?其实复制粘贴就是文件操作,只不过是文件读写,再说明白点就是文件拷贝操作,那我们就一起看看文件拷贝的实现。1.C++实现:#include &lt;iostream&gt;#include &lt;fstream&gt;#include &lt;ctime&gt;using namespace std;int ...
生活和职业的一点感想 不知不觉已经做软件这行已经三年半了,回头看看自己,在事业上还一事无成,对于前方的路,对自己的定位,自己的职业规划,似乎都是模糊的...... 对于过去的,我们已经无力改变,但是我们依然需要对自己的未来充满信心,尽自己的能力做到最好,因为我们已经是“大人”,需要承担家庭的责任,需要让自己的家人生活的更好,告诉自己,加油...... 因为高中初中都是班长,大学兼...
生活的那么一点反思 生活的那么一点反思 夜深了,独自一个人在酒店,想想自己过去走过的路,有点悲伤,但是悲伤中有那么一丝欣慰。 悲伤的是自己给自己定了很多目标,但是很多都没有完成。如自己要求自己今年每周一篇技术博客总结学习的东西,但是仅仅做到了一个多月就没有坚持下去,给自己的借口是项目忙,但是想想更多是自己的惰性和毅力不够,最起码周末可以做的,然而自己没有去坚持...
KPM算法初步理解 KPM算法初步理解 一个字符串“FBCABCDABABCDABCDABYW”中是否包含另外一个字符串“ABCDABY”? 上面这道题目是一个经典的字符串匹配的题目,对于字符串匹配,比较好的算法里很容易想到KPM算法,那KPM算法是干什么的?为什么说KPM比较优秀? 给定一个字符串O和F,长度分别是m、n,判断F是否在O中出现,如...
装饰模式(C++) 装饰模式(C++) 上周换了家公司,由于项目还没有开始,所以比较清闲,上班没事捣鼓下了装饰模式,下面来做做笔记。 装饰模式:动态的将职责额外的加到对象上,若是要扩展,装饰模式提供比继承更加灵活。 上面定义可能比较羞涩难明白,我们举个例子。如世界有英语课程,英语课程很多国家又各有不同,如果中国英语。中国英文又分为新东方英语,新概念英语等,...
时间复杂度 时间复杂度 对于算法,我们应该就会想到时间复杂度和空间复杂度,毕竟它是衡量一个算法效率基本标杆。在实际项目中,一般来说其时间复杂度影响更为突出,那今天没事来总结下时间复杂度的学习笔记呗。 时间频度:算法中的语句执行次数称为时间频度,记为T(n)。 时间复杂度:语句执行次数 T(n) 是关于问题规模 n 的函数,进而分析 T(n)...
代理模式(C++) 代理模式(C++) 年过完了,开始上班了,时间过得太快了,感觉过了个假年........ 代理模式:为其他对象提供一种代理,以控制这个对象的访问。 角色分工:Subject:抽象角色,声明对真实对象和代理对象的共同接口;Proxy:代理角色,代理真实对象的访问;RealSubject:真实角色,最终需要引用的对象。 代理模式主要分...
组合模式(C++) 组合模式(C++) 组合模式:将对象组合成树形结构以来表示"整体--部分"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 关于组合模式的定义有个关键词"树形",这个很关键,也很常见,如二叉树什么的。举个例子,如孝感城市,有教育部分和检察部门,孝感市下面的又有大悟县、红安县等县城,每个县城下面也有教育部分和检察部门,这个不...
字符串反转和句子反转(字符串逆序和句子逆序) 字符串反转和句子反转(字符串逆序和句子逆序) 昨天一个哥们面试,面试官给他出一道题:将字符串反转,如qwert,反转为trewq;将一个句子反转,如Do one thing,反转为thing one Do。 首先,这个题目可以可以分为两个题目来做。1、反转字符串。2、反转句子。1、反转字符串: 我这里用了两种方法: (1)...
建造者模式(C++) 建造者模式(C++) 建造者模式:将复杂的对象的表示和它的实现相分离,使其在同样的构建下可以构建不通的表示。 上面的话可能不是很明白,举个例子就明白了。假设一个公司的软件项目流程是固定的,都需要经过需求理解、需求设计、需求审核、编码、测试这个五个步骤,但是这个公司是一个一级供应商,在拿到项目后,有些模块需要承包给二级供应商,如HMI、Med...
原型模式和模板方法模式(C++) 原型模式和模板方法模式(C++) 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 其中心思想就是克隆。举个例子,我们经常性需要复印身份证复印件,有时需要几张,其实就是克隆,关于代码和UML类图,我就不再多描述了,因为这个太简单了,就是定义一个拷贝构造函数,定义一个clone函数,在clone里面new this指...
C++智能指针 C++智能指针 今天在网上看到一篇关于智能指针的文章,感觉很不错,故转载来学习下。 原文出自:https://www.cnblogs.com/lanxuezaipiao/p/4132096.html导读最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面...
适配器模式(C++实现) 适配器模式(C++实现) 设计模式,是对软件设计智慧的结晶,也是每一个开发人员应该学习的。 适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式可以分为类适配和对象适配。就开发中实际情况而言,对象适配模式用的相对而言多些,下面笔记中适配器模式就是指对象适配器模式。...
策略模式(C++) 策略模式(C++) 策略模式:把一系列算法封装起来,使之可以相互替换。这样就可以使算法独立于客户端变化。 如我们有很多排序算法,但是在不通的环境中,需要使用不同算法,那就可以定义一个抽象类,提供统一的接口,然后在各个排序算法继承抽象类,并实现该子类的排序算法,再定义一个项目类,通过构造函数传入不同算法类的对象或是模板实例化来表示在不同的项...
工厂模式(C++实现) 工厂模式(C++实现) 没事捣鼓了下相对而言比较简单的工厂模式,然后写了个小Demo,记录下,等十年后看到也是种回忆哈....... 工厂模式一般分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。一、简单工厂模式: 简单工厂模式,工厂类是创建产品的,它决定创建哪一种产品,就像领导决定采用那种技术方案样。举个例子,现在有宝马车和奔驰车...