自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林慢慢的博客

欢迎关注,一起学习一起进步。

  • 博客(69)
  • 收藏
  • 关注

原创 【零基础搞定C语言——导航汇总篇】

声明:笔记还在持续更新中,由于作者水平有限,本文难免有错误和不准确之处,本人也很想知道这些错误,恳望读者批评指正,大家一起努力,拿下C语言,冲鸭!!!【联系方式】1583598623@qq.com【更新记录】2021年4月11日(第三次更新 )【勘误记录】暂无第一次笔记第二次笔记第三次笔记...

2021-04-11 21:08:13 26142 68

原创 select、poll、epoll

I/O多路复用

2023-03-19 17:00:08 993 1

原创 自主HttpServer实现(C++实战项目)

该项目是一个基于Http和Tcp协议自主实现的WebServer,用于实现服务器对客户端发送过来的GET和POST请求的接收、解析、处理,并返回处理结果给到客户端。该项目主要背景知识涉及C++、网络分层协议栈、HTTP协议、网络套接字编程、CGI技术、单例模式、多线程编程、线程池等。项目源码Click。

2023-03-11 13:52:52 3994 6

原创 Git配置、版本控制与分支管理

本篇博客结合实例记录下平时常用的git操作。

2023-01-07 16:38:04 2269 25

原创 高并发内存池项目(C++实战项目)

本项目实现了一个高并发内存池,参考了Google的开源项目tcmalloc实现的简易版;其功能就是实现高效的多线程内存管理。由功能可知,高并发指的是高效的多线程,而内存池则是实现内存管理的,关于内存池接下来会进行详细介绍

2022-12-31 22:41:47 8819 66

原创 【深入浅出计算机组成】 PLT 和 GOT,动态链接的解决方案

编译、链接、装载;加载器的作用;如何做到动态链接?如何做到地址无关?GOT 到底保存在哪里?共享库里面还是各个程序里?

2022-07-11 20:28:37 2140 10

原创 三分钟解决Matlab中文乱码问题

三分钟解决Matlab中文乱码问题

2022-07-07 17:13:01 45860 21

原创 手撕红黑树(Red-Black Tree)

红黑树 (C++实现)

2022-07-06 17:03:18 2827 5

原创 手撕AVL树 (C++ 实现)

AVL 树的定义、代码实现、性能分析

2022-06-29 14:49:24 1074 4

原创 手撕二叉搜索树(Binary Search Tree)

红黑树前戏——二叉搜索树

2022-06-23 15:39:27 988 1

原创 C++ 多态(二) : 虚函数、静态绑定、动态绑定、单/多继承下的虚函数表

虚函数、静态绑定、动态绑定、单/多继承下的虚函数表

2022-06-07 14:55:03 1840 29

原创 C++ 多态(一) : 多态的构成条件、final、override、协变、析构函数的重写、抽象类

多态的构成条件、final、override、协变、析构函数的重写、抽象类

2022-06-05 09:48:47 1266

原创 C++ 继承:父子类赋值转换、菱形继承、虚继承、继承与组合

C++ 继承:父子类赋值转换、菱形继承、虚继承、继承与组合

2022-06-02 14:16:15 1346 3

原创 C++模板详解:泛型编程、模板原理、非类型模板参数、模板特化、分离编译

泛型编程、模板原理、非类型模板参数、模板特化、分离编译

2022-06-01 10:23:13 1654

原创 C++类和对象(三):构造函数初始化、友元、匿名对象、内部类

前言:这些知识点属于C++较为前期的内容,博主在今年刷笔试题的时候遇到多次,所以特地这这篇博客再复习了一下。文章目录1.构造函数的初始化2.友元3.匿名对象4.内部类5.类的static成员静态数据成员静态成员函数1.构造函数的初始化在推导之前,关于初始化我们先达成一点共识:初始化只能一次(记住这点)接着讨论一个问题,以下日期类构造函数里面的赋值语句到底是不是初始化?class Date{public: Date(int year, int month, int day) { _y

2022-05-30 14:51:39 662

原创 Matlab零基础入门

matlab零基础入门

2022-05-26 21:39:50 2055

原创 【深入理解HTTP协议】破冰篇

前言:本文将会引入HTTP的发展史、相关概念、相关协议、网络分层模型、域名、并搭建HTTP实验环境,参考课程为极客时间罗建锋老师的《透视HTTP协议》,讲得很棒!强推!!!文章目录@[toc]1.HTTP协议的发展史2.HTTP是什么?2.1 协议2.2 传输2.3 超文本3.与HTTP相关的概念3.1 网络世界3.2 浏览器3.3 Web 服务器3.4 CDN3.5 爬虫3.6 HTML/WebService/WAF3.7 问答4.与HTTP相关的协议4.1 TCP/IP4.2 DNS4.3 URI/

2022-04-18 18:22:44 963 19

原创 C++ 深浅拷贝、写时拷贝

前言:本章以string类为例介绍浅拷贝与深拷贝,引用计数写时拷贝作为了解内容,string类的模拟实现参考C++ string类的模拟实现。1.浅拷贝浅拷贝:对于有申请空间的对象的类来说,是按照字节序依次拷贝过去的,并没有另外申请一块空间。因此,在调用析构函数的时候会造成同一块空间释放两次的情况,从而使程序崩溃。如下实例:class string{public: string(const char* str) { //构造string类对象时,如果传递nullptr指针 //认为

2022-03-18 09:18:39 1571 12

原创 C++ string类的模拟实现

文章目录string类的结构定义1.string类迭代器的实现2.string类的构造、析构、拷贝构造、赋值运算符重载2.1 string类的构造函数2.2 string类的析构函数2.3 string类的拷贝构造函数2.4 string类的赋值运算符重载3.管理字符串的数组,可以增删查改3.1 reverse( ) 接口实现3.2 resize( ) 接口实现3.3 push_back( ) 接口实现3.4 append( ) 接口实现3.5 insert( ) 接口实现3.6 erase( ) 接口实现

2022-02-13 13:41:00 2378 22

原创 C++内存管理

前言:本章主要介绍C++的内存管理,以C++的内存分布作为引入,介绍C++不同于C语言的内存管理方式(new delete对比 malloc free),最后为了加深读者的理解,会介绍new和delete的底层实现原理。文章目录1.C/C++中程序内存分布1.1 内存分布图1.2 小试牛刀2.C语言部分的动态内存管理方式3.C++内存管理方式3.1new/delete操作内置类型3.2 new/delete操作自定义类型4.new和delete底层实现原理(important!!!)4.1operato

2021-11-18 15:34:24 3033 48

原创 C++类和对象(二) - 日期类的实现

前言:本文将介绍Date类的具体实现,通过日期类的简单实现帮助我们完整复习一遍类的“六大默认成员函数”。文章目录1.日期类的定义2.日期类成员函数具体实现2.1准确获取某年某月有多少天2.2日期类构造函数2.3日期类拷贝构造2.4赋值运算符重载2.5+=运算符重载2.6+运算符重载2.7-=运算符重载2.8+运算符重载2.9-运算符重载2.10前置++运算符重载2.11前置--运算符重载2.12后置-- 运算符重载2.13后置++运算符重载2.14>运算符重载2.15==运算符重载2.16>

2021-11-09 09:32:06 1131 31

原创 C++类和对象(一)

博主的一次转变(感谢阅读): 起初写博客只是一时兴起,纯当帮助复习知识点,所创作的博文能得到大家的喜欢也让我很高兴。然而最近深刻的感受到了大篇冗长的博客真的写得太累了,且这段时间收到不少粉丝反馈建议挑一些难点来写博客,博主思考再三后决定采纳大家的建议,所以 接下来的博客不会再事无巨细的将相关知识点”全盘列出“,而是会选择一些博主认为值得分析的知识点进行分享,许多相对简单的基础知识点相信读者直接查阅相关书籍也一定能读懂。前言:本文将介绍类对象中的this指针、“拷贝构造函数为什么不能用值传递?”、“con

2021-11-04 14:04:43 1335 39

原创 最优美的快排代码

前言:之前也写过一篇针对排序的文章八大排序,其中也把快排的几种实现思路实现了一遍,但是无论是哪一种版本代码行数起码都在二十行以上,这俩天刚好看见一段“相当优美的快排模板”,建议可以直接背下来。文章目录1.快排思路:2.快排代码1.快排思路:主要就是“分治”思想,疯狂递归下去!选一个关键x,这里取中间数。单趟:x的左边值比它小,x右边值比它大,找出不符合的,交换一下单趟拍完,再想办法让左边区间有序,key的右边区间有序。2.快排代码void quick_sort(int l, int r

2021-10-30 19:17:26 2250 13

原创 LeetCode刷题——括号匹配问题

前言:这次介绍一道用C语言刷题很难受的一题,主要用到“栈”的思想。1.括号匹配问题OJ链接给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。思路分析:由于栈结构的特殊性,非常适合做对称匹配类的题目。首先要弄清楚,字符串里的括号不匹配有几种情况。先来分析一下 这里有三种不匹配的情况:,第一种情况,字符串里左方向的括号多余了 ,所以不匹配。 第二

2021-10-24 17:45:59 6001 19

原创 【计算机网络】五层协议体系结构的数据传输过程

前言:本章主要是向大家介绍两个主机之间进行数据传输过程中数据在五层协议的体系结构的各个层次之间的详细传输过程。(参考资料为b站上方老师的计网视频,不过该视频前些天被下架了)。文章目录1.五层协议的体系结构2.两个主机交换文件详细图解流程2.1 主机1应用进程数据先传送到应用层2.2 主机1应用层PDU再传送到运输层2.3 主机1运输层报文再传送到网络层2.4 主机1 IP 数据报再传送到数据链路层2.5 主机1数据链路层帧再传送到物理层2.6 电信号(或光信号)在物理媒体中传播,从发送端物理层传送到接收

2021-10-24 08:30:00 5045 20

原创 两万字搞定《数据结构》 八大排序 必读(建议收藏)

前言:本章将介绍常见八大排序包括如下直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快排、归并排序以及计数排序(基数排序),本章内容是重点中的重点!!!铁子们务必全部掌握!!!文章目录1.插入排序1.1直接插入排序1.2希尔排序2.选择排序2.1 选择排序(二元改进版)2.2 堆排序3.交换排序3.1 冒泡排序3.2 快速排序3.2.1 Hoare3.2.2 前后指针法3.2.3 挖坑法3.3 快速排序(非递归)4.归并排序4.1 递归实现归并排序4.2 迭代实现归并排序5.计数排序6.八大排序对

2021-10-18 08:45:00 17747 131

原创 【数据结构】二叉树经典入门算法题集锦(下)

前言:本章将通过五道来自LeetCode/牛客网中的二叉树相关算法题来介绍数据结构中二叉树在算法题中的应用,题目难度不大,大家就当放松放松。文章目录1.二叉树的最大深度思路分析:题解:2.平衡二叉树思路分析:题解:3.二叉树的后序遍历思路分析:题解:4.二叉树的中序遍历思路分析:题解:5.翻转二叉树思路分析:题解:1.二叉树的最大深度OJ链接给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。思路分析:二叉树的最大深度等价于:左右子树的最大深度

2021-10-16 09:10:10 1937 49

原创 【C++初阶】extern C,引用,内联函数,auto和指针空值

前言:紧跟上一篇文章,补完C++入门初期的零散知识点,本章知识点包括extern “C”、引用、内联函数、auto等内容!文章目录1.extern “C”2.引用2.1 引用的概念2.2 引用的特性2.3 常引用2.4 引用的使用场景(1)作参数(2)作返回值2.5 那么引用与指针有哪些区别?3.内联函数3.1 概念3.2 三个特性4.auto关键字4.1 概念4.2 auto的使用细则4.2.1 auto与指针和引用结合起来使用4.2.2 在同一行定义多个变量4.3 auto不能推导的场景4.3.1

2021-10-14 09:53:27 1584 69

原创 【C++初阶】 关键字,命名空间,缺省参数,IO和函数重载

前言:首先感谢每一位老粉丝们的陪伴,从一开始的C语言初阶到C语言进阶,作者用了三个月的时间才学完并更新完对应的博客,后边数据结构初阶部分(数据结构进阶的内容会混在C++当中)又花了大概俩个多月的时间,接下来就开启新篇章啦,进入C++部分!开篇之前先膜下 本贾尼·斯特劳斯特卢普 老爷子,希望大家C++学得都顺利哈!!!其实为什么一开始要先学习C语言,而不是一下子直接上手C++呢?因为作者本人是非科班的学生,主要还是考虑到基础必须打牢的原因!!!在确定转码的学习路线过程当中作者本人也要到了不少985科班

2021-10-11 15:40:01 1505 42

原创 提高代码速度的“正确姿势”

前言:本篇文章无关计算机技术,是作者最近发现有不少小朋友在纠结coding速度的问题,盲打对于程序员而言确实是基础必备技能吧!因为我之前也受过这个困扰,所以写这篇文章来分享下如何解决coding慢的问题。敲键盘快是个很不错的特效,就像吉他手solo秀手速一样, 我觉得每个程序员都应该追求一下。那么如何达到快速呢?作者将从鼠标、键盘指法两方面进行阐述。首先,你不妨想一想平时coding的过程当中,你是否频繁从键盘切到鼠标/触控板,有没有感觉到从键盘切换成鼠标/触控板的过程已经对你的码字速度造成了影

2021-10-07 16:22:22 41381 191

原创 【数据结构】二叉树经典入门算法题集锦(上)

前言:本章将通过六道来自LeetCode/牛客网中的二叉树相关算法题来介绍数据结构中二叉树在算法题中的应用。文章目录1.单值二叉树思路分析:题解:2.二叉树的前序遍历思路分析:题解:3.相同的树思路分析:题解:4.对称二叉树思路分析:题解:5.另一棵子树思路分析:题解:6.二叉树遍历思路分析:题解:1.单值二叉树OJ链接如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。思路分析:我们知道“”具有传递性

2021-09-30 23:02:47 1434 40

原创 【数据结构】 二叉树的简单理解和代码实现

前言:本章主要介绍二叉树的链式结构,及其前序、中序、后序遍历操作,还有 二叉树的其它基本操作包括求结点个数、求叶子结点个数、求第K层结点个数、求二叉树深度等。文章目录二叉树的链式结构二叉树的遍历方式前序/中序/后续遍历代码实现二叉树的基本操作求二叉树结点个数求二叉树叶子结点个数求二叉树第K层结点个数求二叉树的深度/高度查找二叉树中值为x的结点二叉树源代码二叉树的链式结构链式结构实现如下:typedef char BTDataType;typedef struct BinaryTreeNode

2021-09-30 23:00:55 1233 27

原创 【计算机网络】数据链路层(Data Link Layer)

前言:本章作为《计算机网络》系列的第三篇文章,内容主要是向大家介绍数据链路层的内容,引入封装成帧、透明传输、差错控制、数据链路层的流量控制与是否能实现可靠传输、介质访问技术、局域网、广域网、链路层设备等内容(参考资料为b站上点击量最高的两个计网视频——王道&方老师,王道有的地方会讲的不够好,大家可以两个交替看)。文章目录1.基本概念1.1 数据链路层的简单模型1.2 数据链路和帧2.封装成帧与透明传输2.1 封装成帧2.2 透明传输2.2.1 字符计数法2.2.2 字符填充法2.2.3 零比特填

2021-09-24 15:38:23 2649 114

原创 【计算机网络】物理层(Physical Layer)

前言:本章作为《计算机网络》系列的第二篇文章,内容主要是向大家介绍物理层的内容,引入数据通信基本知识、编码&调制、数据交换方式、传输媒介及分类、物理层设备等内容(参考资料为b站上点击量最高的两个计网视频——王道&方老师,王道有的地方会讲的不够好,大家可以两个交替看)。文章目录1.物理层的基本概念1.1 物理层的主要任务2.数据通信基本知识2.1 典型的数据通信模型2.1.1 端系统之间通信的含义2.1.2 端系统之间两种通信方式2.2 数据通信相关术语2.3 三种通信方式2.4 两种数据

2021-09-20 14:01:48 2781 120

原创 【计算机网络】网络体系结构

前言:本章作为《计算机网络》系列的开篇文章,内容主要是向大家介绍介绍网络体系结构,引入计算机网络的概念、组成、功能、分类、标准化、性能指标以及体系结构和OSI、TCP/IP参考模型等内容。(参考资料为b站上点击量最高的两个计网视频——王道&方老师,王道有的地方会讲的不够好,大家可以两个交替看)文章目录1.概念与功能1.1“四网”1.2计算机网络的定义1.3计算机网络的功能2.组成和分类2.1组成部分2.2分类2.2.1 按工作方式分类2.2.2 按组成功能分类2.2.3 按作用范围分类2.2.4

2021-09-17 09:41:57 15605 127

原创 【数据结构】链表经典算法题集锦

前言:本章将分享十一道来自LeetCode/牛客网中的经典链表算法题来介绍数据结构中链表在算法题中的应用。文章目录1.删除链表元素思路分析:题解:2.反转链表思路分析:题解:3.链表中间结点思路分析(快慢指针法):题解:4.链表中倒数第K个结点思路分析(快慢指针法):题解:5.合并两个有序链表思路分析:题解:6.链表分割思路分析:题解:7.链表的回文结构(第2题和第3题的综合)思路分析:题解:8.相交链表思路分析:题解:9.环形链表I思路分析:题解:10.环形链表II思路分析:题解:11.复制带随机指针

2021-09-12 11:04:41 9667 156

原创 【数据结构】 堆的简单理解和代码实现

前言:本章将详细介绍堆,并通过代码创建堆、实现一些堆的基本操作,最后以TopK问题为文章结尾。 By the way,咱们数据结构中的堆是一种数据结构,堆必然是完全二叉树,而系统层的堆是操作系统中管理内存的一块区域分段,注意区分开。文章目录1.堆的概念、性质什么是堆:堆的性质:2.堆的代码实现和基本操作定义堆堆的向上调整堆的向下调整堆的初始化堆的销毁堆的插入操作堆的删除操作获取堆顶的元素堆的判空堆内元素数量打印堆内元素3.TopK问题(即在N个数当中,选出最大/小的K个元素)4.源码链接1.堆的概念

2021-09-07 12:59:01 2307 112

原创 【数据结构】 树与二叉树的基本概念、结构特点及性质

前言:本章内容主要是数据结构中树与二叉树的基本概念、结构特点及性质的引入。文章目录树的概念树的特点:树的常用术语:树的表示:代码创建:树在实际中的应用:二叉树的概念特殊的二叉树满二叉树完全二叉树二叉树的性质及其推导:练习题:习题1:习题2:习题3:树的概念数据结构中的定义的树比较有趣,它是我们所见真实树的倒置,然后再抽象的一种结构,比较有意思。同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、企业的组织架构等等。树是由n(n>=0)个有限结点组成一个具有层次关系的集

2021-09-04 14:51:34 4681 65

原创 【数据结构】 队列的简单理解和基本操作

前言:本章介绍的主要内容是数据结构中队列的概念,并通过代码实现链式结构的队列。文章目录1.队列的基本概念1.1 队列的定义1.2 队列的特点2.队列的代码实现2.1 队列存储的说明2.2 队列的定义2.3 队列的初始化2.4 队列的判空操作2.5 队列的入队操作2.6 队列的出队操作2.7 队列的获取队首元素操作2.8 队列的获取队尾元素操作2.9 队列的计算队列元素数量操作2.10 队列的销毁操作3.源码链接1.队列的基本概念1.1 队列的定义只允许在一端进行插入数据操作,在另一端进行删除数

2021-08-31 19:49:04 1649 83

原创 【数据结构】 栈的简单理解和基本操作

前言:本章介绍的主要内容是数据结构中栈的概念和栈的基本操作,包括:栈结构的定义、初始化、容量检查、判空、入栈、出栈、读取栈顶元素、读取栈内元素个数、栈的销毁等操作的具体实现。文章目录1.为什么需要栈?1.1栈的概念2.栈项目文件搭建2.1 栈结构的代码实现2.2 栈的初始化2.3 栈的检查容量操作2.4 栈的判空操作2.5 栈的入栈操作2.6 栈的出栈操作2.7 栈的读取元素数量操作2.8 栈的读取栈顶操作2.9 栈的销毁操作3.源码链接1.为什么需要栈?1.1栈的概念栈:一种特殊的线性表,其

2021-08-22 14:18:05 1562 47

空空如也

空空如也

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

TA关注的人

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