自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 堆实现优先队列,以及数组堆化和堆排序

c/c++实现堆,堆化和堆排序

2020-04-12 21:40:42 200

原创 选择排序,插入排序,并归排序,快速排序

c/c++实现选择排序,插入排序,归并排序,快速排序。

2020-04-12 17:00:23 230

原创 数组和链表实现栈

c/c++语言,数组和链表实现栈

2020-04-12 12:40:51 198

原创 数组和链表实现队列

c/c++语言,数组和链表实现队列

2020-04-12 12:02:08 146

原创 二分查找

二分查找c/c++代码实现

2020-04-12 10:29:45 96

原创 c++解释器模式

本文主要运用解释器来解析数学表达式。其中还用到了生产者模式,代理模式,策略模式,状态模式,模板方法,单例模式。

2020-02-21 20:53:23 524

原创 c++访问者模式

访问者模式是为了给固定接口增加新的接口。访问者模式有一个巨大的缺陷就是需要增加接口的那个类不能再派生新的类。`c++`现在有了仿函数(重载括号)来替换这种模式,更加灵活。

2020-02-11 20:29:43 274

原创 c++责任链模式

责任链模式是有一类对象(继承自`Handler`可以处理另一类对象(继承自`event`),但这些`event`具体由谁来处理需要经过一些具体算法来确定。责任链就是实现了一个链表,现在数据结构很成熟了,这种模式完全可以用list来代替。

2020-02-11 19:13:47 431 3

原创 c++迭代器模式

迭代器只要是为所有的数据接口统一遍历的方式。c++的stl中广泛应用,但是stl的实现方式是使用泛型编程,实现编译时多态,效率更高。其他很多语言应用这种方式还是很多的。下面方式是面向对象的手法实现迭代器模式。

2020-02-11 17:04:39 357

原创 c++组合模式

组合模式主要是将所有类型元素都抽象成组件,有的组件是叶子节点(不能再有字节点),有的节点是分支节点(可以有孩子节点)。这样的递归的数据结构很方便管理。

2020-02-11 15:15:59 180

原创 c++享元模式

享元模式是用来节省内存空间,提升效率的模式。只有当对象相当之多时,才需要使用。

2020-02-10 15:43:48 252

原创 c++中介者模式

中介者模式:有很多相互依赖的类,将他们的依赖关系集中到中介者中。中介者抽象的是它们之间的依赖关系,这种依赖关系并不会消失,只是集中到了中介者身上。比如:很多同事一起办公,但是工作需要,经常要相互沟通,而我们直接找到对方代价很大,而通过发送微信转达对方是很快的,微信就扮演者中介者。中介者和外观模式,两者相同在于都是很多类相互协作,然而前者强调内部之间的沟通,后者强掉它们与外部沟通。

2020-02-10 13:05:05 409

原创 c++外观模式

外观模式是将很多个类的行为统一管理形成新的外部接口,它强调内部类之间必须存在协作关系,和外部其他类之间又可看作独立的系统。

2020-02-10 10:59:18 117

原创 c++适配器模式

适配器模式是将两个不同的接口,但是功能相似,适配的一种方法。甚至其中目标接口没有实现,实现类没有接口都是可以的。适配器模式主要强调的是接口和实现不统一,需要将两者兼容的类。

2020-02-09 22:05:23 184

原创 c++代理模式

代理模式,可以为原有的某个类新增一些必要的功能(不同与装饰模式,装饰模式所装饰的东西是可有可无的)。代理模式强调将一个类进化成另一个类,且保留原有类。广泛应用于分布式开发中,将本地系统进化成服务器系统供客户端使用。其中的代码相当之复杂,可能会有一些代码生成器自动生成c++代码。

2020-02-09 21:26:46 175

原创 c++建造者模式

建造者模式用来构建复杂对象的设计模式,指挥者用来提供构造方法,建造者用来提供材料,对象建立时只是一个空架子,也可以用`set`方法来自定义构造。

2020-02-09 17:19:45 360

原创 c++抽象工厂方法

本文通过运用设计模式比没用设计模式的优势在哪?设计模式主要是要抓住稳定部分和易变部分,文章结尾会指出。数据库操作为例,以下是原有老代码#include <iostream>using namespace std;//数据库连接抽象类class IDbConnect {public: virtual void connect() = 0; virtual ...

2020-02-09 11:38:39 250

原创 c++工厂方法

本文通过运用设计模式比没用设计模式的优势在哪? 设计模式主要是要抓住稳定部分和易变部分,文章结尾会指出。还指出工厂方法被设计出来,最开始想要解决的问题是什么。

2020-02-08 22:11:51 278

原创 c++桥接模式

本文通过运用设计模式比没用设计模式的优势在哪?设计模式主要是要抓住稳定部分和易变部分,文章结尾会指出。

2020-02-08 19:47:32 376

原创 c++装饰模式

本文通过运用设计模式比没用设计模式的优势在哪?设计模式主要是要抓住稳定部分和易变部分,文章结尾会指出。

2020-02-08 15:42:20 523

原创 c++观察者模式

本文,从无到有,一点点改进,最终为观察者模式。

2020-02-08 09:34:19 214

原创 c++策略模式

本文通过运用设计模式比没用设计模式的优势在哪?设计模式主要是要抓住稳定部分和易变部分,文章结尾会指出。

2020-02-07 21:01:07 277

原创 c++模板方法

本文通过运用设计模式比没用设计模式的优势在哪?设计模式主要是要抓住稳定部分和易变部分,文章结尾会指出。

2020-02-07 20:33:22 194

原创 c语言单元测试,如何伪装(mock)函数调用

本文适合对c语言有一定基础,喜欢单元测试的小伙伴们阅读。本文代码主要实现了c语言单测时mock方法。

2020-02-07 14:16:14 2900

原创 vim的配置文件

map <F9> :call SaveInputData()<CR>func! SaveInputData() exec "tabnew" exec 'normal "+gP' exec "w! /tmp/input_data"endfunc"colorscheme torte"colorscheme murphy"colorscheme deser...

2020-02-06 22:00:55 234

原创 如何生成core dump文件

步骤一:设置core文件生成权限编辑/etc/profile文件,在其中加入或修改ulimit -S -c unlimited > /dev/null2>&1。执行source /etc/profile使刚刚编辑的文件生效。ulimit -c 查看内容(显示unlimited为修改成功)。步骤二:设置core文件生成路径编辑/etc/sysctl.conf文...

2020-02-06 21:50:39 1017

原创 c++11为什么要引入右值引用

本文适合对c++11刚入门的小伙伴阅读。本文加深对左值引用、右值引用、左值右值的理解。

2020-02-06 17:30:23 7332 1

原创 c++工厂模式与new的区别

简单工厂模式是最简单且最常用的工厂模式。本文主要讲解工厂模式比new方法的优势。为什么要用工厂模式来替代new?简单的工厂模式相对于new方法有三个核心的好处:1 可以让产品类统一化入参。#include <iostream>#include <string>using namespace std;class AbstractProduct {public...

2020-02-05 17:53:20 791

原创 c++单例模式模板

所有单例模类直接继承此模板即可,线程安全,效率高(无所),延时构造。#include <iostream>using namespace std;template <typename T>class Singleton {public: //外部获取单例的接口 static T& getInstance() { stati...

2020-02-05 14:46:57 2279

原创 vim命令理解和记忆

本文适合vim编辑器爱好者阅读。本文包括vim大部分实用操作,加深理解和记忆的方法。

2020-02-04 17:35:23 2041

原创 git基本命令的理解

本文适合git命令初学者和对git不是很熟悉的读者阅读。本文包括git各种基本概念的讲解,git常见流程,异常流程,回溯方法,冲突处理的方法。

2020-02-02 17:40:21 441

原创 正则表达式的理解

本文适合初学者,和没有系统学习正则表达式的人阅读,帮助您解决绝大部分正则表达式是的问题。包括名词和量词的方法轻松理解的方法;获取匹配和非获取匹配的区别;匹配结果存储的方式;前缀后缀匹配;正则表达式中或和与操作等。

2020-02-01 13:46:21 457

原创 三、顺序容器

本文适合对于c++有一些基础的人阅读,指出一些容易被忽略的点。本文包括顺序容器(array/vector/string/deque/list/forward_list)和他们的迭代器大部分的使用方法,注意事项,顺序容器的限制;对指针、数组、和数组指针的解释;stack和queue容器适配器。

2020-01-31 17:10:29 280

原创 二、变量和基本类型

本文适合对于c++有一些基础的人阅读,指出一些容易被忽略的点。本文包括长整型和整型转化,无符号和有符号转化,字面常量的默认类型;普通初始化方式和列表初始化方式;声明和定义的区别;命名规则;指针和引用的区别;const的用法;类型推断等。

2020-01-30 08:29:31 269

空空如也

空空如也

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

TA关注的人

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