自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 滑动窗口专题——长度最小的子数组

题意如图。

2024-07-27 23:22:33 143

原创 虚函数表和虚函数表指针的创建时机

如果类没有构造函数,编译器会生成一个默认的构造函数,从而为类的vptr初始化。1、调用基类的构造函数,先将基类的虚函数表地址赋值给vptr。对象构造时,在构造函数中将虚函数表指针赋值给对象vptr(对象的起始地址)2、调用子类的构造函数,将子类的虚函数表地址赋值给vptr。编译器发现类中包含virtual关键字修饰的函数就会创建虚函数表。虚函数表的内容在编译器编译的时候已经生成。虚函数表存在于全局数据区的只读数据段中。虚函数表是存放虚函数的地址的数组。

2024-07-26 19:47:22 85

原创 C++ final关键字和override关键字

修饰类:当 final 用于修饰类时,表示该类是一个最终类,不能被其他类继承,这在某些情况下非常有用,比如当你想确保一个类的行为不会被修改时。2. 帮助编译器进行更严格的检查,如果声明为 override 的函数与基类中的虚函数签名不匹配,编译器会报错,从而避免一些潜在的错误。- 修饰虚函数:当 final 用于修饰虚函数时,表示该函数在派生类中不能被重写,这可以防止子类意外或故意地改变父类的行为。在 C++中, override 关键字主要用于明确表示派生类中的函数是对基类中虚函数的重写。

2024-06-19 23:16:28 117

原创 C++ 多态性及其原理

简而言之,多态就是多种形态,对同一件事,不同的对象的处理动作有多种形态。C++ 的多态性有两种,一种是静态多态,一种是动态多态。

2024-06-17 22:09:38 161

原创 C++ 菱形继承问题

通过虚继承的方式来解决菱形继承的问题,虚继承会为基类与派生类之间创建虚基表,编译器通过虚基表指针的偏移找到对应的变量地址,达到访问同一块空间的目的。菱形继承造成的后果有两个:1.造成二义性,二义性就是C的父类有相同的成员,通过C去访问名字相同的成员造成编译器不知道我们具体访问的是B1中的变量还是B2中的变量。菱形继承是因为C++有多继承的特性,如一个类C继承于B1、B2,而B1、B2继承于同一个类A,那么这时A、B1、B2、C之间会产生一种形似菱形的关系结构,这种关系结构称为菱形继承。2.菱形继承的后果?

2024-06-14 19:37:53 132

原创 C++ 泛型编程-模板

class 类模板名// 类内成员定义注意:类模板中函数放在类外进行定义时,需要加模板参数列表。

2024-05-15 11:01:15 293

原创 C++ 设计模式——代理模式

代理模式指代理控制对其他对象的访问,也就是代理对象控制对原对象的引⽤。代理模式的结构包括⼀个是真正的你要访问的对象(⽬标类)、⼀个是代理对象。⽬标对象与代理对象实 现同⼀个接⼝,先访问代理类再通过代理类访问⽬标对象。• 静态代理指的是,在编译时就已经确定好了代理类和被代理类的关系。也就是说,在编译时就已经 确定了代理类要代理的是哪个被代理类。• 动态代理指的是,在运⾏时才动态⽣成代理类,并将其与被代理类绑定。这意味着,在运⾏时才能 确定代理类要代理的是哪个被代理类。

2024-03-05 19:32:43 475

原创 C++ 设计模式——建造者模式

建造者模式是⼀种创建型设计模式,使⽤多个简单的对象⼀步⼀步构建成⼀个复杂的对象,能够将⼀个复杂的对象的构建与它的表⽰分离,提供⼀种创建对象的最佳⽅式。主要⽤于解决对象的构建过于复杂的问题。• 指挥者Director类:统⼀组建过程,提供给调⽤者使⽤,通过指挥者来构造产品。• 抽象Builder类:创建⼀个产品对象所需的各个部件的抽象接。• 具体产品的Builder类:实现抽象接⼝,构建各个部件。• 具体产品类:⼀个具体的产品对象类。

2024-03-05 19:29:48 348 1

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

抽象⼯⼚模式:⼯⼚⽅法模式通过引⼊⼯⼚等级结构,解决了简单⼯⼚模式中⼯⼚类职责太重的问 题,但由于⼯⼚⽅法模式中的每个⼯⼚只⽣产⼀类产品,可能会导致系统中存在⼤量的⼯⼚类,势 必会增加系统的开销。假设有 A、B两种产品,则开两个⼯⼚,⼯⼚A负责⽣产产品A,⼯⼚B负责⽣产产品B,⽤⼾只知道产品 的⼯⼚名,⽽不知道具体的产品信息,⼯⼚不需要再接收客⼾的产品类别,⽽只负责⽣产产品。⼯⼚⽅法模式每次增加⼀个产品时,都需要增加⼀个具体产品类和⼯⼚类,这会使得系统中类的个数成倍增加,在⼀定程度上增加了系统的耦合度。

2024-03-05 19:13:20 359 1

原创 C++ 设计模式——单例模式

⼀个类只能创建⼀个对象,即单例模式,该设计模式可以保证系统中该类只有⼀个实例,并提供⼀个 访问它的全局访问点,该实例被所有程序模块共享。⽐如在某个服务器程序中,该服务器的配置信息 存放在⼀个⽂件中,这些配置数据由⼀个单例对象统⼀读取,然后服务进程中的其他对象再通过这个 单例对象获取这些配置信息,这种⽅式简化了在复杂环境下的配置管理。单例模式有两种实现模式:饿汉模式和懒汉模式。

2024-03-05 16:45:41 348 1

原创 关于进程地址空间

两张图片了解虚拟地址与物理地址的关系!

2023-12-15 20:26:12 46

原创 Linux 进程概念+fork()

课本概念:程序的一个执行实例,正在执行的程序等。内核观点:担当分配系统资源(CPU时间,内存)的实体。

2023-09-12 12:59:14 58

原创 操作系统介绍

计算机管理硬件1. 描述起来,用struct结构体。2. 组织起来,用链表或其他高效的数据结构。

2023-09-09 22:03:44 81 1

原创 冯诺依曼体系结构

输入设备首先将需要计算的数据与加载到内存中,CPU按需从内存中获取需要的数据,后将得到的结果输出到内存,由内存交给输出设备。内存存在的原因:木桶效应,由于外设和CPU的速度相差极大,总体效率被外设拉低,增加内存提高效率。不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)。外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。一句话,所有设备都只能直接和内存打交道。这里的存储器指的是内存。

2023-09-09 21:11:52 61 1

原创 网络基础(一)

负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.就需要有人站出来, 约定一个共同的标准,大家都来遵守, 这就是。

2023-08-04 15:59:02 64 1

原创 MySQL 数据库 表的操作

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准。collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。在users表添加一个字段,用于保存图片路径。不同的存储引擎,创建表的文件不一样。users.frm:表结构。users.MYD:表数据。users.MYI:表索引。在users表添加二条记录。

2023-07-20 21:28:36 47

原创 MySQL 数据库 库的操作

对于SQL数据库 库的详细操作 ,包括创建、修改、删除、字符集和校验规则、备份等操作。

2023-07-20 18:30:20 34

原创 MySQL数据库基础

我们用常规的文件去保存数据的时候,会有很多缺点,例如,文件的安全性问题、文件不利于数据查询和管理、文件不利于存储海量数据、文件在程序中控制不方便;为了解决以上问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。

2023-07-18 20:00:32 55 1

原创 C语言之数据结构与算法 复杂度讲解!

从零开始学习数据结构啦,加油!

2022-10-24 22:51:03 259 1

原创 C语言自定义类型详解!

自定义类型保姆级教学!!!知识喂到你嘴里,吃还是不吃???

2022-10-15 22:46:23 1321

原创 C语言数据的存储方式

深度了解C 语言数据存储的模式,帮助你掌握数据的底层原理!

2022-10-04 17:47:07 1361 1

原创 memory库函数-memcpy及memmove的模拟实现

你还在为数组的拷贝而发愁吗,你还不能完美的拷贝你想要的数组吗,这篇文章会解决你的烦恼!!!

2022-09-18 21:47:58 479

原创 爷青回!经典扫雷再现!

经典扫雷小游戏的实现,从零开始,简单易懂!

2022-09-01 14:45:21 728

原创 从零开始,编写三子棋小游戏!

童年的回忆,经典三子棋的实现!!!

2022-08-12 19:38:32 809

原创 C语言入坑级(下)(超级无敌噼里啪啦细!!!)

C语言初级详解 下,为你打开知识的大门。关于数组,操作符,函数,指针,结构体

2022-07-29 18:42:01 132

原创 入坑级C语言(超级无敌噼里啪啦细)!!!

这里是关于C语言最简单最基础的知识框架,用于启蒙或者梳理知识体系,如果你是刚刚入坑的小伙伴,那么这篇文章一定会对你有所帮助,确定不进来看看吗?

2022-07-22 19:58:17 257 2

原创 给编程小白的未来规划

对于很多初学者来说c语言是启蒙语言,但是c语言并不简单,想要学好c语言也要下深功夫,脚踏实地,慢慢积累。建议每天坚持编程,每天一道题,也许一星期以后并不能看出你和其他人的不同,但是几个月,几年后你就会发现你和其他人的不同(这波你已经在大气层了!学习计划这一方面相信很多小伙伴都或多或少的有所了解,没有头绪的小伙伴可以参考网上的各种大神,制定属于自己的学习计划。(他真的很难doge哈哈)不急慢慢来,首先学好c语言,脚踏实地,不怕走的慢就怕,停滞不前。和我一样追逐梦想的小伙伴们,做大做强,早日进大厂!...

2022-07-15 16:23:52 674 7

空空如也

空空如也

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

TA关注的人

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