自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

十八道胡同的博客专栏

业精于勤而荒于嬉,行成于思而毁于随。

  • 博客(115)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 我所理解的设计模式(C++实现)—— “一句话总结”和索引

我所理解的设计模式系列已经全部完成,在写该系列的过程中收获很多。俗话说得好,好记性不如烂笔头,写出来不单单可以增加自己对知识的理解,也可以很好的分享给大家,大家共同学习。这里是最后一篇,来给所有的设计模式来个一句话总结,在让我们“过电影”般在过一遍。

2013-09-28 07:22:46 12287 15

原创 关于音频编码标准AAC,Opus,MP3的概念、原理、优缺点

音频编码标准是用于压缩数字音频数据的技术规范,以减少存储和传输所需的带宽。

2024-02-22 11:01:30 752

原创 视频编码标准H.264/AVC,H.265/HEVC,VP8/VP9,AV1的基本原理、优缺点以及适用场景

视频编码标准是用于压缩数字视频数据的技术规范,以减少存储和传输所需的带宽。

2024-02-22 10:47:41 1813

原创 作为一个小白,如果想快速了解视频流解码、分发、转发相关的内容,应该怎么学呢?

了解视频流解码、分发和转发相关的内容需要涉及多个领域,包括但不限于编码标准、网络传输、流媒体协议、服务器技术等。

2024-02-22 10:06:07 409

原创 2023一建机电工程过关分享

22年听的宿吉南,他有很多口诀,所以后面都听的宿吉南的。王峰的精讲、破题、狂飙。23年的涉及消防的那3个阀门的题,我不会,我写的3个阀门都是安全阀。1)22年学习时,我是严格按照下图中的时间安排来学习的(下图是23年的表格和时间),先公共在实务,公共过关后再实务。2)23年是从4月9日开始备考的,具体的学习时间没总统计,单日时间有统计,统计附后。实务:详细的学习计划见下图,其中朱培浩看的是22年精讲,23年书出来之后就没听过他的课来。经济,我看的达江和徐蓉(徐老师的看了一部分,发现不适合自己,果断放弃)。

2024-01-10 16:41:26 620 1

原创 我的软考高项考试之旅

先说下背景,我是2021年下半年通过的高项考试,成绩如下:我之前分别在2020年下半年和2021年上半年考了2次系分,都没过。遂2021年下半年转向考高项。我是在腾讯课堂购买了文老师的课程的,学习也完全依据文老师的建议来学习的。学习安排1)上午题,花2个月时间,每天基本2小时。每个章节的学习过程是一样的,都是先看本章节的录播视频,然后做该章节对应的习题。只有习题正确率达到60%后,这个章节才算通过。否则后续还需在看一遍录播,在做一遍习题。2)案例分析,花45天左右,每天基本2小时。只做.

2021-12-28 12:24:00 1730 2

原创 【jenkins】使用脚本来远程触发jenkins内的多jobs

获取jenkins用户的Token登录jenkins,在用户的【设置】页面的【API Token】部分可以获取用户的Token依次配置每个job的远程构建脚本在Job配置页面的【构建触发器】部分勾选【触发远程构建】,在身份验证令牌中输入可构建者的Token通过发送触发url到jenkins服务器即可远程触发该job的构建,假如jenkins的用户名是IamUser,密码是IamPas...

2020-05-06 17:08:43 869

原创 【jenkins】在centos内,使用jenkins来实现远程部署webapps

从安装jdk开始,一步一步指导你完成远程部署tomcat应用。安装java jdk安装jenkins调整远程机器的tomcat构建job开始执行

2020-05-05 19:32:03 415

原创 windows下面用tail类工具

熟悉Linux的朋友都知道tail -f命令的强大,在windows下面其实也有这么强大的工具,这里推荐两个自己平时使用的。Tail4winTail4win是一个很好用的Windows tail工具,可以实现在windows系统中运行类似Unix和Linux的tail-f命令的功能,从而监视和实时显示文件变化,并且支持同时查看多个文件,支持关键字匹配和突发事件高亮显示,支持命令行功能,可用...

2020-04-09 13:05:00 5544

原创 System.identityHashCode(object)和Object.hashCode()的区别

String a = new String("test"); String b = new String("test"); System.out.println(System.identityHashCode(a)); System.out.println(System.identityHashCode(b)); ...

2019-04-11 11:07:55 494

原创 最佳实践:C#项目转C++项目

最近在把一个C#项目转到C++项目,下面整理下C#和C++不同的地方,给各位个参考,避免入坑:1)默认对象赋值方式不同,所以修改时要多加注意。具体参考 https://bbs.csdn.net/topics/3924405472)类的变量默认值不同 .net默认是类型的默认值,C++没有默认值的。要避免C++的类成员没有默认值的意外行为。3)a[i][j]和a[i,j]是不相同的。...

2018-12-25 14:53:59 8254

转载 SQL Server中四类事务并发问题的实例再现

SQL Server中四类事务并发问题的实例再现朱二(2006.3 转载请注明作者)  本篇文章将用实例再现数据库访问中四类并发问题,希望能让初学者能对事务的并行性有进一步的理解。  首先,让我们先来了解一下并行问题以及事务隔离级别这两个概念。在数据库中,假设如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。并发问题包括:

2014-11-30 14:00:56 2930 3

原创 我所理解的设计模式(C++实现)——访问者模式(Visitor Pattern)

我们去银行柜台办业务,一般情况下会开几个个人业务柜台的,你去其中任何一个柜台办理都是可以的。我们的访问者模式可以很好付诸在这个场景中:对于银行柜台来说,他们是不用变化的,就是说今天和明天提供个人业务的柜台是不需要有变化的。而我们作为访问者,今天来银行可能是取消费流水,明天来银行可能是去办理手机银行业务,这些是我们访问者的操作,一直是在变化的。

2013-09-12 16:07:39 22518 14

原创 我所理解的设计模式(C++实现)——策略模式(Strategy Pattern)

每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 而策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。Contex

2013-08-24 10:59:44 15328 6

原创 我所理解的设计模式(C++实现)——状态模式(State Pattern)

看看我们平时用的开关,同样一个开关他有2种状态:开和关,当她处于不同的状态的时候她的行为是不一样的,比如当她是开着的时候,你按她一下,她就变成了关闭状态,她是关着的时候按她一下,她就变成了开着的状态。看上去就像是改变了它的类一样,其实我们开发者都知道,我们里面用到了if-else,但是当碰到更多状态时就会造成很多很多if-else,设计和维护就相当的负责,我们将要学习的状态模式

2013-08-24 07:44:20 14265 1

原创 我所理解的设计模式(C++实现)——备忘录模式(Memento Pattern)

我们玩单机游戏的时候总会遇到老婆大人的各位事情,一会去买瓶醋了,一会去打个酱油了,会耽误我们玩游戏的进程,但是此时我们能有“保存游戏”这个宝贝,我们的主基地不会在我们打酱油的时候被对手拆掉。 这“保存游戏”的功能其实就是备忘录模式的很好应用,她是在在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以就该对象恢复到原先保存的状态。这个其实也是我们的redo,undo所采用的模式。

2013-08-04 10:23:13 7308 2

原创 我所理解的设计模式(C++实现)——中介者模式(Mediator Pattern)

假设我们开发一个图片处理软件,里面肯定包括很多相关功能,比如说剪切,旋转,滤镜,美化等等,而我们这些功能所要处理的对象是固定的,就是我们所显示的那张图片。但是我们不能把所有的功能罗列到一个tab上,虽然这样处理方便但是不美观。这是我们可以这样子:用一个中介者类负责所有功能的初始化和具体执行,我们需要功能时直接调用中介者类即可。中介者模式就是定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互。

2013-07-27 14:15:22 7733 3

原创 我所理解的设计模式(C++实现)——迭代器模式(Iterator Pattern)

关于迭代器模式,在C++下可以参看 STL iterators 的实现;在.NET下实现Iterator模式,对于聚集接口和迭代器接口已经存在了,其中IEnumerator扮演的就是迭代器的角色,而IEnumerable则扮演的就是抽象聚集的角色,她只有一个GetEnumerator()方法,如果集合对象需要具备跌代遍历的功能,就必须实现该接口;在Java下可以参看集合类型迭代器(java.util.Iterator,java.util.Enumeration)。

2013-07-12 13:19:56 17552 3

原创 我所理解的设计模式(C++实现)——解释器模式(Interpreter Pattern)

未来机器智能化已然成为趋势,现在手机都能听懂英语和普通话,那我大中华几万种方言的被智能化也许也是趋势,我们的方言虽然和普通话相似,但是还是不一样的。这可能需要一个新的语法分析器来帮助我们。我们的解释器模式就是描述了如何为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子。但是解释一门自然语言是复杂的过程,我们以加减运算为例子来详细解释解释器模式。

2013-07-06 19:43:00 9782

原创 我所理解的设计模式(C++实现)——观察者模式(Observer Pattern)

概述:        最近中国股市起起伏伏,当然了起伏就用商机,小明发现商机后果断想入市,买入了中国证券,他想在电脑客户端上,网页上,手机上,iPad上都可以查看到该证券的实时行情,这种情况下我们应该怎么设计我们的软件呢?我们可以这样:小明的所有客户端上都订阅中国证券这个股票,只要股票一有变化,所有的客户端都会被通知到并且被自动更新。         这就是我们的观察者模式,她定义对象间的

2013-06-30 18:19:43 33245 25

原创 我所理解的设计模式(C++实现)——模板方法模式(Template Method Pattern)

概述:     我们最近在开发一个支持多种压缩类型文件的解压缩且制作成pdf的一个应用。对我们的架构来说我们需要支持多种压缩文件类型,但却有固定的操作顺序(先解压缩,在读取里面的文件分析、制作pdf)。我们抽取他们的共同点:这些操作的固定顺序,把他放到我们的父类里;他们的变化点:这些个具体的操作,去留给不同的子类去实现。这个就是模板方法模式,他定义一个操作中的算法的骨架(例子中的固定的操作顺序

2013-06-28 21:54:34 8339 3

原创 我所理解的设计模式(C++实现)——命令模式(Command Pattern)

概述:        我们去餐厅吃饭,我们是通过服务员来点菜,具体是谁来做这些菜和他们什么时候完成的这些菜,其实我们都不知道。抽象之,“菜单请求者”我们和“菜单实现者”厨师,2者之间是松耦合的,我们对这些菜的其他一些请求比如“撤销,重做”等,我们也不知道是谁在做。其实这就是本文要说的Command模式。        将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对

2013-06-12 21:45:38 19551 14

原创 我所理解的设计模式(C++实现)——责任链模式(Chain Of Responsibility Pattern)

概述:     辛辛苦苦了工作了一年,终于可以加薪了,向主管提交了加薪申请,主管一看不得了,自己职权不够,批不了,主管把申请上交总监,总监发现自己也批不了,申请到了总经理手中,总经理一看,小伙子口气不小了,有胆识敢申请,先来谈下心。预知后事如何,请看下回分解。     这就是典型的职责链模式,请求的处理形成了一条链,直到有一个对象处理请求。责任链模式是一种对象的行为模式。在责任链模式里,很

2013-06-06 21:54:25 8490 7

原创 我所理解的设计模式(C++实现)——代理模式(Proxy Pattern)

概述作为C++工程师,免不了要管理内存,内存管理也是C++中的难点,而智能指针采用引用计数的办法很方便的帮我们管理了内存的使用,极大方便了我们的工作效率。而智能指针的这种用法其实就是代理模式的一种,他帮我们控制了该对象的内存使用。代理模式就是为其他对象提供一种代理来控制对这个对象的访问。种类和用途Proxy模式根据种类不同,效果也不尽相同:1、远程(Remote)代

2013-05-29 14:56:07 11286 2

原创 我所理解的设计模式(C++实现)——享元模式(Flyweight Pattern)

概述想想我们编辑文档用的wps,文档里文字很多都是重复的,我们不可能为每一个出现的汉字都创建独立的空间,这样代价太大,最好的办法就是共享其中相同的部分,使得需要创建的对象降到最小,这个就是享元模式的核心,即运用共享技术有效地支持大量细粒度的对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态是存储在享元对象内部

2013-05-25 22:29:23 9695 6

原创 我所理解的设计模式(C++实现)——外观模式(Facade Pattern)

概述想想我们小时候玩的四驱车,里面的构造很复杂,马达,舵机,电池组等等,而我们控制它却非常简单,只要打开电池开关,他就可以跑。我们其实不用知道它里面是如何工作,只要知道拨动开关它就可以工作就行了,这个开关其实就四驱车给我们的一个友好的组件,使得我们可以很方便的控制它。外观模式其实定义了一个高层接口,该接口为子系统中的一组接口提供一个一致的界面,使得这一子系统更加容易使用。类图和样例

2013-04-23 21:10:57 7806 3

原创 我所理解的设计模式(C++实现)——装饰者模式(Decorator Pattern)

解决的问题:我们在装饰新家的时候买了几幅抽象画,买回来之后发现有些加上色彩艳丽的边框更适合我们,而有的加上玻璃罩之后更能符合我们的使用。那我们来怎么解决这个问题呢?他需要动态的给别的对象增加额外的职责,这就是装饰者模式的目的。我们可以通过继承的方式来给原对象增加新功能,但是装饰者模式采用组合的方式比生成子类更加灵活。类图及样例实现:在装饰模式中的各个角色有:抽象

2013-04-21 11:14:12 10759 3

原创 我所理解的设计模式(C++实现)——组合模式(Composite Pattern)

解决的问题:我们PC用到的文件系统,其实就是我们数据结构里的树形结构,我们处理树中的每个节点时,其实不用考虑他是叶子节点还是根节点,因为他们的成员函数都是一样的,这个就是组合模式的精髓。他模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合

2013-04-16 21:14:04 17576 6

原创 我所理解的设计模式(C++实现)——适配器模式(Adapter Pattern)

解决的问题:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。比如说我的hp笔记本,美国产品,人家美国的电压是110V的,而我们中国的电压是220V,要在中国能使用,必须找个变压器转一下电压才可以。这个变压器就是个适配器。适配器模式有类适配器和对象适配器两种模式,我们将分别讨论。类适配器:由图中可以看

2013-04-09 21:53:35 18914 7

原创 我所理解的设计模式(C++实现)——原型模式(Prototype Pattern)

解决的问题:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这个其实和C++的拷贝构造函数的作用是一致的,实际上就是动态抽取当前对象运行时的状态。类图结构:     客户(Client)角色:客户类提出创建对象的请求。抽象原型(Prototype)角色:这是一个抽象角色,通常由一个C#接口或抽象类实现。此角色给出所有的具体原型类所需的接口。在C#中,抽象

2013-04-06 16:01:44 10953

原创 我所理解的设计模式(C++实现)——建造者模式(Builder Pattern)

解决的问题:我创建的这个对象比较复杂,且该对象里面的成员函数用不同的实现来表示不同的实例,换句话说就是同样的对象构建过程可以有不同的表示。比如我那天去吃过桥米线,他们有不同的套餐,套餐里包含的种类是一样的,都有一碗米线,一份凉菜,一杯饮料。但是不同的套餐里这3样又都不是全部一样的。此时我们就可以用建造者模式。类图结构:1.建造者(Builder)角色:给出一个抽象接

2013-04-04 10:58:52 6136 1

原创 我所理解的设计模式(C++实现)——抽象工厂模式(Abstract Factory Pattern)

解决的问题:       在系统里a,b,c三个组件必须同时使用,但是a的同类 a1和a2这三种方法有共同特点但是是互斥的,b,b1,b2和c,c1,c2和a/a1/a2是一样的。就比如说创建在不同操作系统的视窗环境下都能够运行的系统时,Unix下面有unixButton和 unixText,Win下面也有winButton和winText,unixButton和unixText必须在一个系统

2013-03-28 21:54:29 5571 12

原创 Qt基础——获取QGraphicsScene的缩略图即导出到图片

是应用了他的render函数,render的作用是:Renders the source rect from scene into target, using painter. This function is useful for capturing the contents of the scene onto a paint device, such as a QImage (e.g.,

2013-03-28 15:54:46 6677 1

原创 我所理解的设计模式(C++实现)——工厂方法模式(Factory Method Pattern)

工厂方法模式不同于简单工厂模式的地方在于工厂方法模式把对象的创建过程放到里子类里。这样工厂父对象和产品父对象一样,可以是抽象类或者接口,只定义相应的规范或操作,不涉及具体的创建或实现细节。 其类图如下: 实例代码为:#pragma onceclass IProduct{public: IProduct(void); virtual ~IProduct(void);

2013-03-24 15:16:56 5777 1

原创 我所理解的设计模式(C++实现)——简单工厂模式(Simple Factory Pattern)

简单工厂模式按照设计模式类型分的话是属于创建型模式,他是工厂模式中最简单的一种,他不属于GoF 23中设计模式之一,但是是简单实用的。他是有一个工厂对象来决定创建哪一种对象的实例。实现比较简单,这里我只贴出类图和调用方法:  调用方法:IProduct * simpleFactory::Create(std::string className){ if( className

2013-03-24 11:17:10 3738

原创 我所理解的设计模式(C++实现)——桥模式(Bridge Pattern)

桥模式,其作用就是让抽象与实现相分离,让两者都能够各自变化。举例来说吧,画图,我可以画矩形,圆,三角形等等,在哪里画呢?我可以在pdf上画,也可以在doc上面画。画什么图和在哪里画都是可以独立变化的,此种情况就比较适合用桥模式。就是说设计中有超过一维的变化我们就可以用桥模式。如果只有一维在变化,那么我们用继承就可以圆满的解决问题。 我的图形定义: #pragma once#inc

2013-03-23 16:11:36 6446 6

原创 我所理解的设计模式(C++实现)——单例模式(Singleton Pattern)

单例模式,顾名思义,就是只能由一个实例,那么我们就必须保证该类不能被复制。该类不能被公开的创造。那么对于C++来说,他的构造函数,拷贝构造函数和他的赋值函数都不能被公开调用。但对于该私有的构造函数的构造时机上来说也可以分两种情况来构造: 只有当需要改类的时候去构造(即为懒汉模式) 在程序开始之前我就先构造好,你到时候直接用就可(即为饿汉模式)那么我分

2013-03-23 13:53:00 5844 14

转载 常用RGB颜色表

常用RGB颜色表 RGB值 RGB值 RGB值黑色000

2013-03-20 13:26:24 3724

原创 Qt基础——自适应窗口大小

本文是受其他文章启发,先把该文章转载在这里,以示感谢:我们知道,通过Qt的各种Layout可以实现控件的自动布局。但是在使用Qt Designer创建的UI时,发现UI始终是设计时的样子,无法随着容器的放大缩小自适应地变化。通过之前对ui的.h文件进行分析,我们知道Qt在生成ui代码时,根据最外层的Layout自动添加一个了Widget: /** 这

2013-03-15 10:54:30 25702

原创 用VS2010来开发qt

1.从http://qt-project.org/downloads 下载最新的为vs2010编译的qt library和VS add-in 2.依次安装qt library 和VS add-in3.打开VS2010,依次打开qt5->qt options->Qt versions,单击add,在弹出的对话框里点击Path后面的路径选择按钮,我这里是(C:\Qt\Qt5.0.1\5.0.1

2013-02-20 13:26:34 7942 2

outlook2007新邮件来时右下角出现类似于qq,msn的提示

outlook2007新邮件来时右下角出现类似于qq,msn的提示

2010-06-01

主要讲述以http://blog.csdn.net/LCL_data/archive/2009/12/09/4974499.aspx中的链表逆序为模板来讲述指针的使用

主要讲述以http://blog.csdn.net/LCL_data/archive/2009/12/09/4974499.aspx中的链表逆序为模板来讲述指针的使用

2010-01-16

c语言教程

好动西啊!!!<br>可能对你有帮助!

2007-07-15

c语言经典100例

绝对经典<br/>绝对对你帮助

2007-04-25

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

TA关注的人

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