自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++代理模式

代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问。比如说,一个来访人员想要和公司的董事长直接谈话是不可能的,一般都是要先和公司的秘书先对接,秘书会根据来访人员的权限进行安排。这个秘书执行的就是代理的功能。

2024-01-03 17:40:13 377

原创 简单工厂,工厂方法,抽象工厂模式

简单工厂(Simple Factory)不属于标准的OOP设计模式中的一项,在编写大型C++软件的时候,代码里面会出现很多的类,每次创建对象的时候,都需要通过new 类名称的方式来生成对象,这样一来,用户需要记忆很多类的名称,暂且不管记不记得住,这样的设计使得代码很难维护,类名如果做了改变,那么所有使用类名称的地方都需要去修改,耦合性太强,不符合我们软件设计的思想,Simple Factory就是在这样的需求下诞生的。

2024-01-03 16:53:29 1240

原创 C++单例设计模式

单例模式指的是,无论怎么获取,**永远只能得到该类类型的唯一一个实例对象

2023-12-29 16:42:30 958

原创 设计模式笔记

简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。工厂方法模式同样属于类的创建型模式又被称为多态工厂模式。工厂方法模式的意义是 定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类 必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工 厂角色的情况下引进新的产品。

2023-12-24 15:42:45 1198

原创 【无标题】

实验一要求实现一个简单的二分查找功能:设计二分查找的函数,然后再Test1中去调用这个函数,在主函数中调用这个Test即可实验二内容实验内容:对于环形链表,编写函数求出其中环的长度。掌握链表节点的定义和链表的创建方法。使用双指针方法解决某些算法问题。其实这个在Leetcode上面有专门的题目,这个是力扣题目的链接:142. 环形链表 II - 力扣(LeetCode)输出的结果如下:用递归来实现二分查找实验四内容插入排序的代码选择排序的代码实验五内容快速排序的代码用递归来实现实验六内容

2023-12-01 22:17:21 426

原创 Day 14周二

工厂模式: 就是单个类的创建工作抽象工厂模式:多个类的创建工作单例模式:类的全局对象创建工作建造者模式:复杂类的对象创建工作原型模式:自身类的克隆模式。

2023-11-29 15:00:54 384

原创 Day 12 周日和周一

这个代码是肯定跑不了的,但是我个人最开始的想法确实是差不多这个样子的我感觉这个题目如果使用哈希表来做有点难,主要是去重操作,自己代码搞了半天我还不知道自己哪里有问题,感觉还是比较麻烦的。那个哈希表的创建还要在找到了去重了a之后再去创建,感觉有点难理解。

2023-11-28 08:34:56 458

原创 Day11

其实在这里也是应该要学习一下这个unordered_map的一些使用的内容和方式,作为STL的容器的内容,在使用的时候还是存在着很多的操作需要去学习的。不是特别熟悉unordered_map的使用方式,刷算法题也当作熟悉这类STL的使用了。这个是用数组来解决的,因为题目中给出了限制的条件,所以使用数组的效率会比较高。暴力求解的方式太简单了,但是这样的解决方式很难获得面试官的青睐。这是看了别人的使用的代码,但是我感觉可以再优化一下子。我的第一种思路就是直接两层for循环直接暴力求解。

2023-11-26 12:32:07 348

原创 Day10

std::set和std::multiset底层实现都是红黑树,std::unordered_set的底层实现是哈希表, 使用unordered_set 读写效率是最高的。如果用的是用数组来解决的话,因为这里给出的是数字,没有上限,所以开辟的数组的长度是不受限制的,在这里是非常容易造成数组空间的浪费。数组只适合范围比较小的时候的,如果给出的数值范围有1W的话,开辟一万空间大小的数组显然是很浪费的。看到一个用双指针的解决方式的想法,觉得还是挺大佬的思路的。关于unordered_set的使用和内容。

2023-11-24 23:18:10 802

原创 每日博客Day9 10

如何自己去涉及一个链表,去设计链表的增删查改,对每一种操作都要掌握总结一下,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!

2023-11-23 22:56:04 833

原创 每日博客Day8

个人第一次思路: 其实我个人的第一个思路是比较暴力的,我第一遍暴力遍历链表,把链表的所有数值全部都保存到数组里面,然后翻转这个数组,再重复的覆盖当前的这个链表。但是这样子的实现方式实在是太暴力了,没有什么必要。递归法:其实对于我个人来说,我感觉递归如果理解了还是很容易的,但是有时候如果不理解他的结束条件和初始化的设置的话,还是感觉一下子不能明白。这个题目的递归相对来说还是挺容易一下子就理解的,递归就是反复去执行相同的操作。下面的代码还是可以更加的简洁的,比如传入的变量的设置。

2023-11-21 23:27:22 109

原创 每日博客Day7

看了《白日梦想家》电影,感觉自己很喜欢这种摄影风格。风光摄影的画面给人带来的感觉非常的震撼,给人的内心带来一种安静的感觉。昨天晚上是十二点休息的,但是还是早上十一点才起来,这三天都不是很在状态,早上起不来下午的项目效率不是很高,一个下午的时候才看了两节课的内容,项目写起来感觉挺痛苦的。

2023-11-21 23:25:54 108

原创 每日博客Day7

看了《白日梦想家》电影,感觉自己很喜欢这种摄影风格。风光摄影的画面给人带来的感觉非常的震撼,给人的内心带来一种安静的感觉。昨天晚上是十二点休息的,但是还是早上十一点才起来,这三天都不是很在状态,早上起不来下午的项目效率不是很高,一个下午的时候才看了两节课的内容,项目写起来感觉挺痛苦的。

2023-11-19 23:08:32 25

原创 每日博客 Day 6

int val;

2023-11-17 22:00:49 21

原创 每日博客 Day5

关于C++上的数组的有关知识是面试基本上的必须被问到的内容比如这一个面试题目:**在C++中指针和数组的区别是什么?**看到这类问题,可以自己在脑海厘米快速的回忆一下在C++中如何初始化vector的二维数组?

2023-11-16 22:14:16 32

原创 每日博客day4

每日博客笔记里面有自己的算法学习笔记,也有自己学习C++的语法的笔记内容,或者自己看面试题目的写的总结内容代码随想录 (programmercarl.com)给你一个正整数 ,生成一个包含 到 所有元素,且元素按顺时针顺序螺旋排列的 正方形矩阵 。​ 个人实现思路:模拟顺时针画矩阵的过程:我们遵循一个循环不变量的原则,意思就是我们对每条边的处理规则都是一样的,不能改变每条边的结束条件在我这里我们采用是左闭右开的原则来一入循环深似海 | LeetCode:59.螺旋矩阵II_哔哩哔哩_bilibil

2023-11-15 22:32:22 35

原创 算法训练第三天

感觉自己每天的进度和速度都会不一样,今天因为下午是满课的,所以少了一整个下午的时间来学习,所以时间会不太够。之后要是下午水课比较多的话,我直接带电脑去教室写代码算了,这样子至少可以避免时间被全部浪费。每天刷的算法题目的多少刚开始不要太在意了,重点还是说要知道自己学了什么内容,这个内容做的是什么才重要。就和健身一样,认认真真的做高质量组,健身的质量会比随随便便做很多组要好很多。

2023-11-13 20:41:15 33

原创 算法训练第二天

仍然是以数组为中心的算法题目。

2023-11-12 22:59:02 32

原创 代码随想录Day1

这是我第一次写的代码,都不知道自己干嘛,思路和代码一塌糊涂,简直是一团糟我个人的想法是说,我先去找tatget是否存在这个数组中,如果不存在,直接返回-1,-1如果存在的话,那我们返回找到这个位置,然后设置一个left和right向左边和右边去查找边界,然后把边界存放在里面返回但是个人的问题就是说,自己的代码组织能力太差了,逻辑混乱,而且返回值是vector我返回的是int类型的数组,连编译都不可能通过public://先找到这个元素//找到了当前元素的时候进行判断while(1)

2023-11-09 22:42:43 45

原创 代码随想录刷题开营记录

算法训练营Day0

2023-11-07 22:38:12 45

原创 剑指offer第五题

在写这道题目的时候要注意传入的字符串的长度,要优先预留好足够长度的字符串内存空间的长度,否则会出现溢出的情况。在网络编程中我们如果接收到的内容中存放着空格或者%#这类内容需要进行替换处理,否则无法识别,会出现问题。在书本的第51页上有这道题目的详细讲解。

2023-10-13 14:37:03 27

原创 操作系统结构

操作系统笔记,文章是个人的学习笔记,参考大学《操作系统原理及应用》课本和B站Y4NGY的《操作系统原理》课程写的笔记,笔记按照Y4NGY的视频思路和PPT书写的,在这里感谢作者的视频讲解,这对我帮助很大。

2023-09-05 22:27:24 54

原创 操作系统:导论

文章是个人的学习笔记,参考大学《操作系统原理及应用》课本和B站Y4NGY的《操作系统原理》课程写的笔记笔记按照Y4NGY的视频思路和PPT书写的在这里感谢作者的视频讲解,这对我帮助很大

2023-09-04 18:09:30 210

原创 C++中的指针操作:++Ptr、++Ptr、Ptr++、和(Ptr)++

指针的操作

2023-08-12 12:41:51 681

原创 C++基本数据类型

因为所有的数据本质上都是存在内存里面的,理论上都是可以修改的破解外挂和缓冲区攻击其实就是利用这种机制,修改内存中的数据。

2023-08-06 19:46:04 32

原创 C++:将用户输入的小写字母转换成大写字母

这个功能设计的比较全面了,就是要注意一下那个数组的长度稍微大一点,不然可能会出现溢出的情况。在ACSII码表中97代表的是小写的字母a,65代表的是大写的字母A。在这里我们使用ASCII码表的对照方法来进行转换。

2023-08-06 18:01:56 1380

原创 C++多线程银行存款取款问题

【代码】C++多线程银行存款取款问题。

2023-08-04 17:19:50 258 1

原创 STL算法和Lambda表达式

在本质上Lambda表达式是匿名函数,比如说在写程序的时候,我们要传入一个仿函数,但是说重新定义一个函数比较麻烦,可以直接用Lambda表达式来定义函数。例如: Target(容器里面的数)const _Fn& _Func const _Ty& _Left。同理可以查看一下bind2nd的定义。

2023-08-04 16:48:19 36 1

原创 C++多线程基础

例如,在一个网络服务器应用程序中,可以使用多个线程来处理并发的客户端请求,从而提高服务器的响应速度。这里理解的话:理解成,两个进程都抢着要执行,一个进程还没有完完全全的执行完毕,另外一个进程就开始执行了。线程(thread)是计算机科学中的一个重要概念,它是进程(process)中的一个执行单元。,到了main函数的结尾的,函数return返回了结束了,但是Func1这个进程却没有结束,因此会出现错误。如果在主进程中加入join函数,那么就当于是说,我先将当前的T1执行结束之后,在去执行主进程。

2023-08-04 16:47:14 42 1

原创 动态规划(1)

动态规划的问题其实就是求局部问题的最优解的集合。

2023-07-18 11:48:13 115 1

原创 函数指针和仿函数

的本质是一个指针,该指针的地址指向了一个函数,所以它是指向函数的指针。函数的定义是存在于代码段,因此,每个函数在代码段中,也有着自己的入口地址,

2023-07-02 23:29:01 131 1

原创 泛型编程思想

C++泛型编程的思想

2023-06-29 21:12:20 101 1

原创 适配器设计模式

C++设计模式笔记

2023-06-29 18:01:20 48 1

原创 C和C++的类型转换

C++编程思想学习笔记

2023-06-29 11:33:37 60 1

原创 void和NULL和nullptr

C++编程思想笔记

2023-06-29 11:30:35 86 1

原创 寄存器章节实验

对应王爽汇编的课后实验内容

2023-06-29 11:28:23 52 1

原创 C++基础语法内容(6)

学习笔记

2023-06-25 11:45:06 209

原创 C++的运算符和表达式(3)

学习笔记

2023-06-25 11:33:43 32

原创 百度C++基础语法(2)

代码必须要先编译,然后才能执行,相对于汇编语言,代码的编写效率更高,执行效率相对于其他语言比较高(java其实是介于编译语言和解释性语言之间的语言,因为java的代码需要通过一个“解释器”来执行代码)。例如python,他们的代码是编译一行执行一行,因此代码的执行效率并不高,但是上手难度低,开发的效率会远高于编译型语言。他们的可移植性很强,代码之间的跨平台能力很高。标识符的名字不要乱取,这个代码的规范在代码随想录的文章中也写过,可以在卡尔代码随想录的网站上看一下如何规范的书写代码,以及如何命名变量的名称。

2023-06-25 11:30:27 108

原创 概述 (1)

个人学习笔记

2023-06-25 11:24:42 21

空空如也

空空如也

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

TA关注的人

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