
C++
文章平均质量分 73
W1024201
这个作者很懒,什么都没留下…
展开
-
【Linux进阶】SO_REUSEPORT实现UDP组播
组播报文的目的地址使用D类IP地址, D类地址不能出现在IP报文的源IP地址字段。单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用“逐跳”的原理在IP网络中传输。原创 2023-03-20 11:22:07 · 1089 阅读 · 1 评论 -
动态规划——股票问题全解
股票问题是一类动态问题,我们需要对其状态进行判定分析来得出答案但其实,我们只需要抓住两个点,在这两种状态下分析问题会简单清晰许多下面将会对各个问题进行分析讲解,来解释什么是持有和不持有状态,并在分析后得到题目的解答原创 2023-02-16 18:56:45 · 1230 阅读 · 0 评论 -
【C++】类成员重载、覆盖(重写)和隐藏(重定义)的区别
重载是指在同一范围定义中的同名成员函数才存在重载关系。主要特点是函数名相同,参数类型和数目有所不同,不能出现参数个数和类型均相同,仅仅依靠返回值不同来区分的函数。重载和函数成员是否是虚函数无关原创 2022-12-31 16:08:35 · 640 阅读 · 0 评论 -
多线程生产者消费者——分别使用条件变量、信号量实现
生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。原创 2022-12-31 14:58:37 · 542 阅读 · 0 评论 -
【设计模式】适配器模式
根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;∶适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类一般是一个具体类,包含了客户希望使用的业务方法,在某些情况下可能没有适配者类的源代码。也就是说:当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法,而这个过程对客户类是透明的,客户类并不直接访问适配者类。即使用之前的类,之前的方法名,但调用了新的功能。适配器中构建适配者,通过适配者调用方法。原创 2022-12-31 00:58:18 · 332 阅读 · 0 评论 -
【设计模式】责任链模式
职责链模式(Chain of Responsibility):使多个对象都有机会处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。应用场景: 为完成同一个请求,如果存在多个请求处理器以及未知请求处理器个数或者请求处理器可动态配置的情况下,可以考虑使用责任链模式。避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。原创 2022-12-31 00:34:40 · 149 阅读 · 0 评论 -
【设计模式】状态模式
在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。做产品的时候,我们总能遇到一些比较复杂的逻辑问题,而普通的流程图,或时序图对于对象和状态的解读缺乏直观的描述。, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。状态模式简单来说就是使用不同的状态,来描述一个在有限状态中转化的问题。同时使用不同状态下不同的响应方式,来对有限问题做出解决。使用状态的转换对单词的描述。原创 2022-12-31 00:28:06 · 763 阅读 · 0 评论 -
【设计模式】工厂方法模式
工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又简称为工厂模式(Factory Pattern),又可称作虚拟构造器模式(Virtual Constructor Pattern)或多态工厂模式(Polymorphic Factory Pattern)。工厂方法模式。原创 2022-12-31 00:21:37 · 502 阅读 · 0 评论 -
【设计模式】简单工厂模式
首先将需要创建的各种不同对象的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入的参数不同创建不同的具体产品对象;简单工厂模式提供了专门的工厂类用于创建对象,将对象的创建和对象的使用分离开,它作为一种最简单的工厂模式在软件开发中得到了较为广泛的应用。,而仅仅“消费”产品,简单工厂模式实现了对象创建和使用的分离。原创 2022-12-31 00:08:30 · 757 阅读 · 0 评论 -
【设计模式】观察者模式
观察者模式的学习,并使用C++完成对实际场景的模拟原创 2022-12-30 21:21:01 · 342 阅读 · 0 评论 -
【设计模式】单例模式
单例模式的学习,并使用C++实现单例模式,懒汉+饿汉原创 2022-12-30 19:24:07 · 715 阅读 · 0 评论 -
【C++】一篇文章搞懂继承权限问题
这篇文章抓住三类权限之中的三种作用范围,对应类内、类外和子类中。抓住这三个范围去理解更加轻松。原创 2022-08-29 04:09:25 · 778 阅读 · 0 评论 -
【C++】面向对象
目录前言一、面向过程与面向对象1.面向过程——步骤化2.面向对象——行为化二、对象的属性三、对象的关系前言当软件的规模超过一定的尺度以后,采用结构化程序设计,其开发和维护就越来越难控制。其根本的原因就在于,面向过程的结构化思想与现实世界往往都不一致,结构化程序设计的思想往往很难贯彻到底。在结构化程序设计中,采用的是“自顶向下,逐步细化”的思想。具体操作方法是模块化,是按功能来分的,所以也称为功能块(函数)。在模块化思想中已经出现的封装的概念,即是将数据封装..原创 2022-05-29 19:36:15 · 236 阅读 · 0 评论 -
【C++】引用与指针
目录一、引用与指针的区别二、在汇编层面理解二者区别虽然在编写C++程序时,我们可以简单将引用理解为变量的别名来使用,但作为C++程序员,需要了解其在底层的运作模式,以提高我们对底层的理解。一、引用与指针的区别以下总结9种区别,引用的规则加粗表示。1.从语法规则上讲,指针变量存储某个实例(变量或对象)的地址; 引用是某个实例的别名。2.程序为指针变量分配内存区域; 而不为引用分配内存区域。3.解引用是指针使用时要在前加“* ”; 引用可以直接使用。4.指针变量的值可以发..原创 2022-04-30 13:51:23 · 999 阅读 · 0 评论 -
【C++】引用基础
引用的定义类型&引用变量名称=变量名称;这就是引用变量的定义。&和类型结合称之为引用符号,不是取地址的符,代表别名的意思。一、引用的特点1.定义引用必须初始化。2.没有空引用3.没有引用的引用,即二级引用二、const与引用引用即是变量的别名,不能对引用扩张其读写能力。三、引用作为形参代替指针对比如下两种交换函数的实现方式:不难看出,指针传递比起引用传递来说,更加复杂,且需要考虑空指针的情况。而对引用传递来说,并不存在空引用的情...原创 2022-04-30 11:39:15 · 1126 阅读 · 0 评论 -
【C++】const与指针
目录一、C与C++中const的区别二、const与指针的关系1.const int* (int const*)2.int* const3.const int* const三、常变量与指针四、同类型指针的赋值兼容规则在C++的学习中,指针与const的应用是重中之重,我们需要分辨两者组合的多种情况与效果,以下为他们的相关讲解。一、C与C++中const的区别在进行const与指针首先需要了解C++中的const的性质下面我们编写一段代码,分别使用.c与.cpp..原创 2022-04-29 23:29:19 · 1633 阅读 · 0 评论