自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

原创 C++数据结构十大经典排序算法

排序算法是《数据结构与算法》中最基本的算法之一。十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,时间复杂度为 O(nlogn)~O(n²)。非比较类排序:不通过比较来决定元素间的相对次序,其时间复杂度可以突破 O(nlogn),以线性时间运行。

2023-11-12 19:17:13 59

原创 C++ 观察者模式

/让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,//会通知所有观察者对象,使它们能够自动更新自己。//定义了一种一对多的依赖关系,

2022-08-07 16:57:59 196 1

原创 C++ 模板方法模式

/通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。//模板方法模式是通过把不变行为搬移到父类,去除子类中的重复代码来体现它的优势。//定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。//当不变的和可变的行为在方法的子类实现中混合在一起的时候。//模板方法使得子类可以不改变一个算法的结构。//即可重定义该算法的某些特定步骤。//不变的行为就会在子类中重复出现。...

2022-08-07 16:55:14 293

原创 C++ 策略模式

定义一些列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户而变化。

2022-08-07 16:53:13 502

原创 C++ 状态模式

/把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。//状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。//当一个对象的内在状态改变时允许改变其行为。//这个对象看起来像是改变了其类。...

2022-08-07 16:46:01 102

原创 C++ 访问者模式

它使你可以在不改变各元素的前提下定义作用于这些元素的新操作。表示一个作用于某对象结构中的各元素的操作。

2022-08-07 16:43:33 162

原创 C++备忘录模式

在不破坏封装性的前提下,捕获一个对象的内部状态,这样以后就可将该对象恢复到原先保存的状态。并在该对象之外保存这个状态。

2022-08-07 16:41:13 285

原创 C++ 中介者模式

中介者模式一般应用于一组对象以定义良好但是复杂的方式进行通信的场合。以及想定制一个分布在多个类中的行为,而又不想生成太多的子类的场合。

2022-08-07 16:38:32 97

原创 C++ 迭代器模式

迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责。这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。

2022-08-07 16:36:05 95

原创 C++ 解释器模式

解释器模式为文法中的每一条规则至少定义了一个类,因此包含许多规则的文法可能难以管理和维护。建议当文法非常复杂时,使用其他的技术如语法分析程序或编译器来处理。

2022-08-07 16:33:46 325

原创 C++ 命令模式

命令模式:它将请求发送者与请求接收者解耦,请求发送者通过命令对象间接也能用接收者使得系统具有更好的灵活性。

2022-08-07 16:28:56 130

原创 C++11新特性(四)

C++11新特性(四)

2022-07-10 18:41:02 328

原创 C++11新特性(三)

C++11新特性(三)

2022-07-09 23:03:50 202

原创 C++11新特性(二)

C++11新特性(二)

2022-07-03 18:26:20 411

原创 C++11新特性(一)

此篇主要记录整合C++11新特性long long类型

2022-07-02 14:56:43 271

原创 C++ 责任链模式

责任链模式责任链模式的核心是解决一组服务中的先后执行处理关系。

2022-05-30 22:37:08 444

原创 C++ 智能指针

智能指针在C++中,动态内存的管理是通过一对运算符来完成的: new,在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;delete,接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。shared_ptr类shared_ptr允许多个指针指向同一个对象;make_shared函数最安全的分配和使用动态内存的方法是调用一个名为make_shared的标准库函数。此函数在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr,make_sh

2022-03-31 15:12:40 239

原创 C++ 代理模式

代理模式有点像老大和小弟,也有点向分销商。主要解决的问题是为某些资源的访问、对象的类易用操作上提供方便使用的代理服务。而这种设计思想的模式经常会出现在系统中,或者组件中,它们都提供给我们一种非常简单易用的方式控制原本需要编写很多代码进行使用的服务类。class Subject{public: Subject(){} virtual ~Subject() {} virtual void show() {}};class RealSubject : publ

2022-03-30 16:16:02 765

原创 C++ 享元模式

享元模式,主要在于共享通用对象,减少内存的使用,提升系统的访问效率。而这部分共享对象通常比较耗费内存或者需要查询大量接口或者使用数据库资源,因此统一抽离作为共享对象使用。在享元模式的实现中需要使用到享元工厂来进行管理这部分独立的对象和共享的对象,避免出现线程安全的问题。...

2022-03-30 15:33:01 1956 3

原创 C++ 装饰器模式

装饰器模式装饰器模式主要解决的是直接继承下因功能的不断横向扩展导致子类膨胀的问题,用装饰器模式后就会比直接继承显得更加灵活同时这样也就不再需要考虑子类的维护。为了实现动态的给对象添加职能,即从外部给对象添加相关职能.为了解决新加类职责,继承实现的弊端. 而是通过组合来实现.抽象构件角色(Component)——定义抽象接口具体构件角色(ConcreteComponent)——实现抽象接口,可以是一组装饰角色(Decorator)——定义抽象类并继承接口中的方法,保证一致性具体装饰角色(Co

2022-03-29 18:02:16 361

原创 C++ 外观模式

外观模式外观模式也叫门面模式,主要解决的是降低调用方的使用接口的复杂逻辑组合。这样调用方与实际的接口提供方提供了一个中间层,用于包装逻辑提供API接口。有些时候外观模式也被用在中间件层,对服务中的通用性复杂逻辑进行中间件层包装,让使用方可以只关心业务开发。class LeafA{public: void DoA() {};};class LeafB{public: void DoB() {};};class LeafC{public: void DoC() {};};

2022-03-28 18:09:29 627

原创 C++ 组合模式

组合模式将对象组合成属性结构以表示‘部分-整体’的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。class Component{public: virtual void Add(Component *) {}; virtual void Remove() {}; virtual void Display() {};};class Composite : public Component{public: void Add(Component*) {}; v

2022-03-28 17:19:18 191

原创 C++ 桥接模式

桥接模式桥接模式的主要作用就是通过将抽象部分与实现部分分离,把多种可匹配的使用进行组合;在A类中含有B类接口通过构造函数传递B类的实现,这个B类就是设计的桥。实现:指的是抽象类和它的派生类用来实现自己的对象。class Abstraction{public: virtual void operation() = 0;};class AAbstraction : public Abstraction{public: void operation() {};};class B

2022-03-27 21:16:04 344

原创 C++ 适配器模式

C++适配器模式适配器模式的主要作用就是把原本不兼容的接口,通过适配器修改做到统一。类适配器:多重继承实现,并提供适配后的接口。class Adaptee{public: void SpecificRequest(){}};class Target{public: virtual void Request() {};};class Adapter : public Adaptee, public Target{public: void Request() { thi

2022-03-26 20:15:30 371

原创 C++ 单例模式

最近公司做项目用到的,顺便记录一下。只包含一个被称为单例的特殊类.它的目的是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享.懒汉式:第一次用到类的实例的时候才回去实例化 就是说它的返回值是当这个函数首次被访问时被创建的.class Singleton{public: static Singleton* GetInstance();private: Singleton(); static Singleton* instance;.

2022-03-12 17:08:54 1170

原创 C++ 原型模式

C++ 原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.抽象基类:Prototype虚拟基类,所有原型的基类,提供Clone接口函数:纯虚函数,根据不同的派生类来实例化创建对象.#include <iostream>#include <string>class Prototype{public: Prototype(){} virtual ~Prototype() = 0; virtual Prototype* C

2022-03-09 17:18:16 765

原创 C++之建造者模式(Builder)

C++之建造者模式(Builder)建设代码结构,提升全局把控能力建造者模式属于创建性的设计模式,它将多个简单对象通过一步步的组装构建出一个复杂对象的过程,将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。具有良好的封装性和独立性,对客户隐藏了该产品是如何组装的,既产品内部的实现和组成模块之间相对独立,耦合度不高有利于程序扩展。#include <iostream>class Builder{public: virtual void BuildPartA(

2022-03-09 16:25:20 957

原创 C++设计模式之工厂模式

C++设计模式之工厂模式

2022-02-25 17:49:52 2597 2

原创 利用Opencv+Qt打开摄像头

利用Opencv+Qt添加摄像头1、opencv包添加链接描述2、安装Qt3、代码#pragma once#include <QWidget>#include "ui_camera.h"#include <QCameraInfo>#include <opencv2/objdetect/objdetect.hpp>#include <opencv2/highgui/highgui.hpp>#include "opencv2/ope

2022-02-22 15:01:12 3609

原创 字符数组转float类型

字符数组转float类型用于转float

2022-02-18 14:04:33 1543

Qt+PCAN使用UDS协议进行文件烧写

上位机:界面Qt,硬件使用PCAN,使用UDS协议进行文件烧写

2024-06-22

创建vs项目,使用批处理程序清理生成的中间文件,可以缩小项目文件的大小

创建vs项目,使用批处理程序清理生成的中间文件,可以缩小项目文件的大小

2022-02-25

OpenCV用C++语言编写,由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

opencv资源包

2022-02-22

空空如也

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

TA关注的人

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