自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(122)
  • 资源 (5)
  • 收藏
  • 关注

原创 梯度下降算法实现原理

在了解梯度之前,我们先了解一下导数:f′xlim⁡△x→0fx△x−fx△xf′x△x→0lim​△xfx△x−fx​当导数大于0时候,则单调递增,当导数小于0时候,则单调递减,所以,我们可以根据导数值,来求取函数的最值.那如果是多元函数,我们怎么求最值呢?答案是分别对多元变量求取 偏导数,即对哪个变量求导,就把其余变量看做常数,以f(x,y)∂f∂xlim⁡△x→0fx△xy−fxy△x。

2024-01-24 14:41:20 964 6

原创 汉明码(海明码)解析

相信使用过光盘的读者都会有这样一种经历,如果不小心刮花了盘面,大部分情况下,把它放进DVD机器却仍然可以播放视频,这是为什么呢?什么意思呢?假设光盘存储的内容为:,那么实际光盘会有三份这样的内容,假设我们在光盘某个位置刮花了,即二进制数据可能被修改了,那么当进行播放前,会将三份内容按照下面规则进行排列检验:但是这样就会比较浪费存储空间,因为要存储一份内容,却要多花两倍空间,那怎么解决呢?这就是本文将要引入的汉明码问题解析;它所需要的检验错误的空间,只占整个内容的非常小一部分,它怎么实现的呢?我们慢慢道来在

2022-12-08 00:28:34 9948 11

原创 冯诺依曼体系各硬件工作原理解析

1946年,美国发明了世界上第一台计算机ENIAC,可用于比较快速的数据计算,但是其运算速度却受到了人工数据的输入速度的限制,为此我们现在所广为人熟悉的大佬 冯诺依曼提出了程序存储的概念:当采用程序存储概念以后的计算机,其运算速度得到了明显提升,比如第一台采用冯诺依曼体系结构的计算机,翻译过来就是电子离散变量自动计算机;冯诺依曼体系结构由五大设备组成,分别是: 输入设备, 运算器, 控制器, 存储器和输出设备,它们之间的关系如下:输入设备的作用是: 将信息转换为机器能识别的形式,即二进制数据;运算器设备的作

2022-12-07 00:13:14 7837 9

原创 多数之和问题

针对给一组用例,和一个目标数target,求用例中多数相加等于target的所有数,且不能重复问题,一般有两种解法:利用集合一般求解两数之和问题,时间复杂度达到O(n);而双指针问题可以把N数之和问题从时间复杂度O(Nn)降低到O(N(n-1));此两种解法的具体思路在第一题和第二题分别会进行详细叙述,后面的题便直接使用,不再赘述链接给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一

2022-12-06 15:15:13 5863 3

原创 剩余内存无法满足申请时,系统会怎么做?

当我们向操作系统申请内存时候,是否有想过一个问题:如果当前系统物理内存不足以支撑我们所需要的空间容量,操作系统会进行哪些的相关处理来保证满足我们的要求?答案是涉及接下来我们要讲解的几个方面内存的分配机制, 回收可回收内存, 如何在保证性能的其拉提下满足要求,以及如何保证不被OOM机制处死现代操作系统大部分都是使用虚拟内存的页或者段页式内存管理机制,当我们使用malloc等内存申请函数调用时候,所分配到的空间实际是虚拟内存,并不会分配到物理内存,当程序下次进行读取该内存时,CPU就会去访问该虚拟内存,然后发现

2022-12-03 10:52:37 5714 1

原创 操作系统导论--受限制的直接执行

为了保存当前正在运行的进程的上下文,操作系统会执行一些底层汇编代码,来保存通用寄存器、程序计数器,以及当前正在运行的进程的内核栈指针,然后。

2022-11-24 23:21:22 5802 3

原创 网络是怎样连接的--TCP大致控制流程

协议栈的内部结构中上下关系是有一定规则的,上面的部分会向下面的部分委派工作,下面的部分接受委派的工作并实际执行;当然,这一上下关系只是一个总体的规则,其中也有一部分上下关系不明确,或者上下关系相反的情况,所以也不必过于纠结。再下面就是操作系统内部,其中包括协议栈:协议栈的有两块,分别是负责用TCP协议收发数据的部分和负责用UDP协议收发数据的部分,它们会接受应用程序的委托的操作。.协议栈的是用IP协议控制网络包收发操作的部分。在互联网上传送数据时,数据会被切分成一个一个的。

2022-11-23 17:15:33 7296 9

原创 网络是怎样连接的--委托协议栈发送消息

这说明,同一台计算机上可能同时存在多个套接字,在这样的情况下,我们就需要一种方法来识别出某个特定的套接字,这种方法就是描述符(其本质是一个数字编号),这样子协议栈就可以根据不同的描述符进行不同的数据操作;Web使用的HTTP协议规定,当Web服务器发送完响应消息之后,应该主动执行断开操作,因此Web服务器会首先调用close来断开连接,断开操作传达到客户端之后,客户端的套接字也便断开了(管道锻炼)。发送数据是一系列操作相结合来实现的,如果不能理解这个操作的全貌,就无法理解其中每个操作的意义。

2022-11-21 13:53:02 5319 2

原创 网络是怎样连接的--DNS服务器查询原理

最下层的www就是服务器的名称。例如负责管理lab.glasscom.com这个域的DNS服务器的IP地址需要注册到glasscom.com域的DNS服务器中,而glasscom.com域的DNS服务器的IP地址又需要注册到com域的DNS服务器中这样我们就可以通过上级DNS服务器查询出下级DNS服务器的IP地址,也就可以向下级DNS服务器发送查询请求了;然而,互联网中存在着不计其数的服务器,将这些服务器的信息全部保存在一台DNS服务器中是不可能的,因此一定会出现在DNS服务器中找不到要查询的信息的情况。

2022-11-21 11:12:02 5510

原创 网络是怎样链接的--向DNS服务器查询Web服务器的IP地址

这个过程与浏览器生成要发送给Web服务器的HTTP请求消息的过程类似,解析器会根据DNS的规格,生成一条表示“请告诉我www.lab.glasscom.com的IP地址的数据,并将它发送给DNS服务器(上图③)。其中“号”对应某个子网(整体)的,而“室”对应某个子网中的计算机,这就是网络中的地址(IP). “号”对应的号码称为网络号,“室”对应的号码称为主机号,这个地址的整体称为IP地址,通过IP地址我们可以判断出访问对象服务器的位置,从而将消息发送到服务器。的集合,其他的应用程序都需要使用其中的组件。

2022-11-20 23:51:16 6051

原创 网络是怎样连接的--生成HTTP请求消息过程

网址,准确来说应该叫URL,比如以http://开头的那一串东西.但实际上除了“http:”,网址还可以以其他一些文字开头,例如“ftp:”“file:”“mailto:”等。,因此它需要一些东西来判断来访问相应的数据,而各种不同的URL就是用来干这个的,比如访问Web服务器时用“http:”,而访问FTP服务器时用“ftp:”,也就是说我们可以把这部分理解为访问时使用的协议类型。

2022-11-20 22:10:05 5767

原创 多路转接(IO复用)接口介绍

参数nfds,整型,意义表示select所需要轮询的fd中的最大值加一.例如select需要轮询的fd有,那么;至于为什么加一,理由很简单,其实就是循环的一个遍历界限,比如我要遍历5次,那么循环就是for(int i = 0;i

2022-11-20 17:33:37 6156 6

原创 五种IO模型

IO,即input/output,IO模型即输入输出模型,而比较常见且听说的便是磁盘IO,网络IO.按照冯诺依曼结构的来看,假设我们把运算器、控制器、存储器三个设备看做一个整体(假设称为中转),那么输入设备、输出设备,和中转就构成一个中转IO,也就是说IO是以某一个核心为的,而涉及计算机核心与其他核心之间的过程我们就成为一个IO.

2022-11-18 23:39:19 5923 3

原创 5进程创建FORK

fork

2022-11-15 20:37:34 419

原创 4进程地址空间

进程地址空间

2022-11-15 20:30:31 439 1

原创 3环境变量

linux环境变量

2022-11-15 20:26:58 418 1

原创 自主WebServer实现

基于TCP传输的HTTP协议自我实现

2022-11-14 20:30:05 5542

原创 自我实现tcmalloc的项目简化版本

博主这里仅仅只是取出该项目的重要结构进行了讲解,对于一些细节优化,这里并没有阐述,例如: 线程申请的内存大小大于256KB时候,便直接向PageCache申请;利用基数树优化哈希表结构减少锁竞争的开销;利用定长内存池代替new和delete;想比较细致的观看该项目,可以点击项目源码。

2022-11-12 16:39:53 5656 2

原创 2进程概念和状态

文章目录前言1. 何为进程?2. 进程PCB3. PCB内容3.1 标识符PID3.2 程序计数器3.3 上下文数据4. 创建子进程---fork()4.1 理解fork的工作原理5. 进程状态5.1 R (running) 运行状态5.2 S(sleeping) 可中断睡眠状态5.3 D (Disk sleep) 不可中断的睡眠状态5.4 T (stopped) 停止状态5.5 Z (zombie) 僵尸状态 和 X (dead) 死亡状态5.6 孤儿进程6 小解惑什么样的状态无法被杀死:?7. 进程

2022-03-11 16:42:46 5722 21

原创 1操作系统发展历程

文章目录前言1 发展历程原因1.1 人工输入和脱机IO(输入输出)1.2 单道批处理系统1.3 多道批处理系统1.4 分时系统1.5 实时系统1.6 微机操作系统2 冯诺依曼体系结构3 操作系统在计算机中的角色前言想要理解操作系统(operating system简称OS),首先需要明白其发展历程,然后知晓工作原理,下面的内容就是主要介绍因为什么原因而发展,以及现在的功能和目标.1 发展历程原因1.1 人工输入和脱机IO(输入输出)人工控制早期计算机的功能非常简单,只能用于计算性工作,而操作的

2022-03-09 09:54:26 7043 18

原创 sublime配置C/C++并调试

文章目录前言1. 工具准备1.1 sublime的安装1.2 MinGw的安装和配置2. 开始配置2.1 MinGw路径放进环境变量2.2 sublime的配置3. 开始使用3.1 运行代码3.2 调试代码前言本文主要讲关于sublime和c/c++的配置,目的是达到可以运行和调试1. 工具准备1.1 sublime的安装通过官网进行下载安装包,然后执行一路next进行安装,最好不要动修改路径博主这里有安装包:安装链接:https://pan.baidu.com/s/117Gse_XNvS

2022-03-07 23:28:47 13143 22

原创 C++入门篇(15)之模板知识进阶

文章目录前言模板的非类型参数模板的特化模板的分离编译问题前言前面的章节,我们大致结束了stl基础,现在即将向模板进阶和继承多态开始出发对于模板,博主在前面章节简答的介绍过,而此篇文章主要讲模板的一些更高级应用模板的非类型参数在前面的章节中,我们使用到的模板参数一直是class,但实际上,其模板参数不止有class,比如我们有此下模板:#define N 100;template<class T>class Array{ private: T array[N];

2022-03-05 14:29:07 915 24

原创 怎么看待现在的全引擎同一个作者文章成风现象?

文章目录原因原因​ 最近想要搜索一些大厂已经考过的题目(程序员一枚),但是当把关键词发给搜索引擎以后,给我的状态真的是非常糟糕,整整一个页面,从上到下,所能映入眼帘的竟然是同一个人写的文章,我刚开始以为是这个人的博客写的非常非常好(强调:这里没有对该博客作者---福大大架构师 有任何攻击行为),才引起了多个作者的转载,但是当我打开以后,博客内容就是一个题目解释,然后贴上代码,因为个人的需求不一,该片博主的文章没有符合我的需求,我便想看看其他人的.但是无论你怎么翻阅,所有文章都是一个人发出来的,连标点符号

2021-12-19 15:01:58 478 2

原创 C++入门篇(14)之适配器,仿函数 并简单实现队列和栈

文章目录前言适配器stack的实现①结构搭建②push数据③pop数据④size返回大小⑤empty判空⑥top获取栈顶⑦总览结构队列的实现①结构搭建②push数据③pop数据④size返回大小⑤empty判空⑥front获取队头⑦总览结构stack和queue适配器注意事项伪函数优先级队列优先级队列的实现①结构搭建②向上调整法③push数据④向下调整⑤pop数据⑥获取堆顶⑦获取数量⑧判空⑨总览结构总结前言在前面的几个章节中,博主陆陆续续地介绍了模板,以及STL容器中的string和vector的线性

2021-11-28 16:31:45 2092 23

原创 C++入门篇(13)之list的实现

文章目录前言list的结构搭建两种构造函数① 默认构建函数② 迭代器区间构建函数拷贝构造函数赋值重载数据的头尾删插① 尾插push_back()② 尾删pop_back()③ 头插push_front()④ 头删pop_front()迭代器的实现迭代器接口clear()清理析构函数erase和insert的实现and简化头尾数据删除最终list代码前言上一节我们简单叙述了一下list的概念,知道其底层是一个带头结点的双向循环链表,并且介绍了其使用方法,**但是!**知其然未必知其所以然,我们不但应该知其

2021-11-24 17:11:17 4097 40

原创 C++入门篇(12)之list的使用

文章目录前言构造的使用1 构造空list2 构造含n个值为val的元素3 拷贝构造4 用迭代区间迭代器接口1 正常迭代接口2 逆向迭代接口容量接口元素访问数据修改头插头删尾插尾删pos位置插入erase擦除pos位置交换两个链表元素前言今天我们终于来到了C++的list章节,在讲解之前,先回顾一下前面的vector和string吧.vector和string的底层都是用的顺序表,因此其空间在物理结构上连续的.而今天的list却不一样,它在物理上是散乱的.因为list本质上是一个链表!,并且是一个带头双

2021-11-18 09:45:46 1274 23

原创 C++入门篇(11)之vector的底层实现

文章目录前言定义初始结构声明构造函数容量有关操作获取有效数据大小size()获取数据容量capacity()增加容量reserve()重置大小resize()迭代器数据操作尾插push_back()尾删pop_back()某一位置插入 insert()某一位置删除 erase()拷贝构造[]访问操作=赋值操作特别注意!!!!前言上一小节,我们讲解了vector的使用,也大概了解了其创建对象,增删改查数据等操作.那么今天,我们就来大致实现一下吧.定义初始结构在标准C++中,vector同样是一个模板

2021-11-17 11:47:02 5880 32

原创 C++入门篇(10)之vector使用

文章目录前言创建对象迭代器数据插入数据删除容量操作前言兜兜转转,我们来到了C++的vector章节,今天就讲讲怎么使用vector吧.vector的本质就是一个线性的顺序表,只不过在C++中被弄成了模板,以达到泛型编程目的.而使用的方面大概包括创建对象,数据插入,数据删除,数据访问,迭代器以及容量修改等方面创建对象在C++中,官方文档所给的创建对象方法有4-6种,博主这里便介绍其中最常用的4种,同时博主为了大家先能够简单使用,会省去一些与源文档不一样的地方.直接创建,即和类定义对象一样,官方

2021-11-12 17:43:08 1526 17

原创 C++入门篇(9)string的模拟实现

文章目录前言深浅拷贝string的实现结构定义构造函数拷贝构造析构函数赋值重载[]访问改变容量字符和字符串拼接查询大小迭代器插入和删除clear()前言本篇文章讲解的内容主要是深浅拷贝和string类的实现.深浅拷贝概念:**浅拷贝:**只将对象的值拷贝过来,存在一定的隐患.**深拷贝:**给每个对象单独分配资源,一般对象涉及资源管理都会用深拷贝.什么意思呢?我们假设自己定义一个类,如下: class String{public: String(const char* s = "1

2021-11-06 10:52:24 1736 37

原创 C++入门篇(8)之string使用

文章目录前言basic_string模板介绍string的对象构造(初始化)string()string (const char* s)string(const string& s)string(size_t n,char c)string的容量操作size()和capacity()empty()和clear();resize()reserve()string的访问和遍历操作[]形式访问迭代器访问const迭代器和reverse迭代器范围遍历string的查找和修改push_back()append

2021-10-29 10:40:33 1009 23

原创 C++入门篇(7)之模板基础讲解

文章目录前言引入模板函数模板模板的匹配原则模板的显示调用类模板注意1注意2前言今天博主将要介绍的内容是–模板,他在C++中具有非常重要的位置.至于什么是模板呢?我们请看下面的章节.引入我们对交换函数Swap已经非常熟悉了,但是我们经常会遇到这样的一些事,比如,很多不同的数据类型进行交换,那么我们就需要写不同的重载Swap,如下:#include <iostream>using namespace std;void Swap(int& a,int& b){

2021-10-27 17:28:12 1288 23

原创 C++入门篇(6)之内存处理

文章目录前言C/C++内存分布c语言中动态内存管理方式C++内存管理方式new和delete操作基础类型new和delete操作自定义类型基于malloc开辟并初始化的自定义类型new和delete底层实现原理operator new和operator deletenew的底层实现delete的底层实现new[]的底层实现delete[]的原理前言兜兜转转,我们终于结束了C++中非常重要的一环**(类和对象),现在来到了C++中的内存管理章节.在此篇文章中,博主将会介绍内存的分布,不同于c的新型申请堆

2021-10-25 17:32:31 757 9

原创 C++入门篇(5)之类和对象总结下

文章目录前言再谈构造函数初始化列表初始化列表注意点explicit关键字static成员**静态成员为所有类对象所共享,不属于某个具体的实例**类静态成员即可用类名::静态成员或者对象.静态成员来访问静态成员函数**没有**隐藏的this**指针**,不能访问任何非静态成员静态成员和静态函数也有public、protected、private3种访问级别,也可以具有返回值友元友元函数友元类内部类前言本篇文章将会主要讲解构造函数的初始化列表,static成员,以及内部类,目的是对前几章讲解类时候的一个深

2021-10-24 17:13:26 4658 41

原创 C++入门篇(4)之6大默认函数中

文章目录前言默认函数的引入构造函数概念:注意点1注意点2析构函数拷贝构造赋值运算符重载构造运算符重载赋值重载运算符重载练习const成员const4问取地址及const取地址操作符重载前言上一章,博主介绍了类的该来以及使用,现在我们开始更加深入的章节吧,那就是类的默认函数,而我们要着重讲解的将会是前4个默认函数,至于最后两个,因为最后两个几乎没什么用默认函数的引入上一节我们已经知道了类,现在博主有个小问题,就是如果我们定义一个空类,比如下面:class Date{};Date类是

2021-10-14 16:43:14 2029 37

原创 日期----类之实现

文章目录前言类的定义和各种操作符声明获取某年的某月有多少天构造函数的实现拷贝构造赋值运算符重载+=整型实现+整型实现-=整型实现-整型实现前置++后置++前置--后置-->重载==重载>=重载<重载<=重载!=重载日期减去日期前言这是一篇对于日期类的实现练习,是上一篇文章的一个小小分支;类的定义和各种操作符声明在上文中我们已经详细说明了需要实现哪些操作符和声明,所以这里便直接写出.class Date{public: // 获取某年某月的天数

2021-10-14 16:41:11 493 18

原创 C++入门篇(3)之类和对象上

文章目录前言面向过程与面向对象类与对象的引入何为类类的定义访问限定符说明封装类的实例化类模型1.如何计算类对象大小2.类对象的存储方式this指针面试题1.`this`指针存在哪里?2.this指针可以为空吗?前言在讲解了C++的部分基础后,我们来到了C++的精华部分,类与对象.在本章节中,博主将会带领大家了解类的定义和类的使用.面向过程与面向对象我们熟悉的C语言是面向过程,关注的是过程,通过分析问题而写出对应的函数并调用来解决问题.而C++是基于面向对象的,关注的是对象,通过把复杂的事情拆

2021-10-11 22:38:46 1191 25

原创 C++入门篇(2)之引用,内联函数,auto和范围遍历

文章目录前言extern "C"引用1.概念2.语法3.引用特性4.常量引用5.引用做函数返回值6.引用注意点7.传值、传引用效率比较内联函数1.概念2.特性auto关键字1.概念2.auto的使用细则3.auto不能推导的场景基于范围的for循环(C++11)使用条件指针空值nullptr前言承接上文入门篇1,博主这次将会继续更新以下内容:extern ,引用 ,内联, auto ,范围for循环 和 C++中的空指针表示法(温馨提示:都是讲解浅显的知识,后面会深入讲解.),浏览此文,大家可以根据上

2021-10-09 20:55:42 1508 31

原创 C++入门篇(1)之关键字,命名空间,输入输出和函数重载

typora-copy-images-to: upload文章目录前言介绍C++关键字命名空间命名空间来由命名空间定义命名空间可合并命名空间的三种使用方法第一种第二种第三种C++输入&输出cin简单使用cout简单使用缺省参数概念全缺省参数半缺省参数函数重载函数重载概念重载注意c为何没重载,c++为何有?怎么实现的?更新完毕!前言历经3个月,博主逐渐更需完毕C语言的大部分知识,又耗费两个月左右,博主又更新完毕初阶的数据结构,终于到了今天,那就是我们期待已久的c++知识,此次文章是将会是c.

2021-09-26 20:41:12 1315 23

原创 数据结构和力扣动画制作

前言由于最近博主在写一些关于数据结构方面的文章,不自主的用到了一些Gif格式的动图,而这被一些粉丝看到了,私聊我希望出一篇怎么制作Gif的文章,今天博主刚好有空,便简单的介绍下.工具准备需要的工具: 万能神器PPT + GIF录制工具screetogif熟悉PPT动画①熟悉各种图形在开始菜单里面有各种图形,大家可以按照自己的心意选择.②学会给自己心仪图形和字体配色选择一个图形,可以自己进行相关配色,这里有些小技巧,(Ctrl按住不放,鼠标点击多个图形可以选择多个.按在shift

2021-09-20 08:49:08 1145 32

原创 常见排序之平方排序(时间复杂度)

typora-copy-images-to: upload文章目录前言冒泡排序选择排序插入排序冒泡排序优化选择排序优化插入排序优化前言此篇文章介绍的排序主要有3个,冒泡排序,选择排序,插入排序,他们有一个共同的特点,那就是时间复杂度都为O(n²).冒泡排序冒牌排序的思想是,先遍历数组一次,在遍历过程中,通过两两交换的方式把较大的数据放到后面(保证了每次遍历时都能把最大的数放在后面),然后又从头到尾重复此过程,直到有序.如下图(绿色代表在遍历过程中两两比较,橙色代表已经部分排好序):.

2021-09-19 21:07:53 1200 29

MNIST手写数据集免费下载

直 接 使 用 直 接 下 载

2024-02-20

CIFAR10数据集免费下载

完全免费 下载解压就用 可以打开

2024-02-20

数据的存储(c语言版本)超级详细.pdf

数据的存储(c语言版本)超级详细.pdf

2021-06-01

c语言动态内存详细介绍,一定值得.pdf

c语言动态内存详细介绍,一定值得.pdf

2021-06-01

vs2019中各种系统源文件的查找.pdf

vs2019中各种系统源文件的查找.pdf

2021-06-01

C语言的这个小细节,绝对值得你去看.pdf

C语言的这个小细节,绝对值得你去看.pdf

2021-06-01

文件操作详解(C语言版本)超级详细.pdf

关于c文件操作的描述

2021-06-01

空空如也

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

TA关注的人

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