自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 对IP协议概念以及IP地址的概念进行简单整理

IP协议定义了网络层数据传送的基本单元,也制定了一系列关于网络层的规则。

2023-09-15 21:10:52 374

原创 以太网的简单概念、MAC地址与IP地址的关系

有了MAC地址,当然还需要IP地址。网络层可以 通过IP地址 将数据从一个网络发送到另一个网络。数据链路层可以将一个结点 通过MAC地址 传递到相同链路 的另一个结点。**

2023-09-15 11:40:46 1044

原创 C++11相较于C++98多了哪些可调用对象?--《包装器》篇

C++98里面的可调用对象只有普通函数和函数指针。

2023-08-27 21:11:42 285

原创 n位的二进制可以表示多少个小数?

并不是每一个十进制小数都可以化成二进制,根据小数转化成二进制的规则来看,如果……

2023-08-01 17:50:22 885 2

原创 计算机里基本硬件的组成以及硬件协同

徒弟负责打杂,例如师傅想要柜子里的草药—党参,师傅就把党参的位置写在纸条上,然后徒弟根据纸条上的位置,去柜子里找,找到了就把党参放在柜台上,等待师傅拿就可以了。

2023-07-29 20:43:37 413

原创 后缀表达式的运算 以及 最详细的中缀表达式转为后缀表达式

第一种是按照上面的方法,将它完完整整地化为中缀表达式后,进行计算;第二种是......

2023-07-20 18:46:38 1476

原创 让进程能够“相互沟通”的高级方式一:匿名管道

我们都知道进程是具有独立性的,意味着进程之间无法相互通信。但在一些情况下,不得不让进程之间进行通信。例如,数据的传输,数据的共享。

2023-05-30 21:16:20 243 1

原创 从索引结点出发探索软、硬链接

对于整个计算机系统的资源管理,我们可以认为,OS先将这些资源的数据信息,给描述起来构成一个部分,然后再将它们组织起来,就能够实现由OS集中管理。举一个最经典的例子,进程的引入是为了实现程序的并发执行,同一时间间隔内,系统中可能存在大量的进程,OS就需要对这些进程进行管理。首先,OS将进程的各种属性信息描述起来,形成了一个叫做PCB的数据结构,Linux上的PCB叫做task_struct。然后,再将这些PCB组织起来,组织的方式多种多样,例如链接、索引等。文件的原理也是如此。

2023-05-25 20:00:31 798

原创 根据虚拟地址,如何求出页号和偏移量?

虚拟地址划分成和。物理地址同样可划分为和如何划分,关键点在于页面的大小。假设给你一个十进制表示的地址20000,一个页面的大小为4KB,那么如何找出地址20000的具体位置呢?先不探讨这个问题的答案,先来看看下面的这个举例。如果有12个人,头上的数字代表他的学号,按照学号低到高排序。一个组有三个人(一个组的大小为3),如何判断学号为8的人在哪一个组,又在哪一个组的第几个呢?现在在回过来看和上面的原理是一样的:地址从0开始的、页号从0开始。

2023-04-26 22:18:38 4029 2

原创 哈希表(散列表)的平均查找成功/失败长度

本文所分析的是使用除留余数法计算哈希地址这类,的平均查找成功长度和查找失败长度

2023-04-01 20:14:09 16800 6

原创 红黑树的插入调整情况分析

原来整个树中从根结点到叶子节结点的所有路径上黑色结点数量是一样的,现在以grandparent为根的子树中,黑色结点多了一个,为了维持性质,就必须把grandparent变成红色。当然,这只是我们的假设,grandparent也有可能就是根结点,为了防止这种事情发生,不管整棵树的根结点再此之前被我们变成了什么颜色, 最后都需要将整棵树的根结点强制变成黑色的。

2023-03-30 20:53:06 450

原创 STL中map的下标操作解析

类型,也就是说调用这个函数后, 会返回一个键值对。获取到第二层阐述的迭代器所指向的键值对,这个键值对是最开始,map[k]中以k作为关键字的键值对。获取到此时map[k]中以k作为关键字的键值对的第二个元素,也就是键值对的value.使用map[k]中的k作为关键字,并且创建了一个匿名对象作为值,构建出一个。STL中:map可以使用下标进行操作,set则不可以。map中对下标操作符[]进行了重载,实际上就是调用了。它返回的是,键值对中value的引用。插入到调用这个函数的map对象中。

2023-03-21 20:47:29 847

原创 从监视和内存窗口去分析-菱形继承

虚继承的做法就是在腰部的位置使用virtual关键字,将其修饰为虚继承关系

2023-03-15 17:26:45 281 1

原创 内部排序:希尔排序

希尔排序,又称为“缩小增量排序”,是直接插入排序的优化。对于直接插入排序,当待排记录序列处于正序时,时间复杂度可达O(n),若待排记录序列越接近有序,直接插入排序越高效。希尔排序的思想正是基于这个点进行优化。

2023-01-05 15:44:39 450 6

原创 深度解读面试题:链表中环的入口结点(附代码,可过在线OJ)

求链表中环的入口结点,是一道十分经典的面试题。但是很多人往往并不清楚求解它的原理和思路,究竟是什么。本文将带你逐步去探索,求解该问题的思路。

2022-12-06 15:26:06 355

原创 线性表的顺序实现【C语言版的真代码】

线性表的存储结构可以采用顺序存储、也可以采用链式存储。采用顺序存储的线性表称为顺序表。

2022-11-29 16:31:58 960

原创 关于跳表Skip List的模拟实现以及随机化层数的探究

以该表查找19为例,从表头的最高层开始查找,最高层指向9,19比9大,那么肯定在后面,所以跳到值为9的这个结点,值为9的结点最高层指向值为21的结点,21比19小,说明19在值为9的结点和值为的21结点之间。看值为9的结点的下一层,它指向值为17的结点,19比17大,说明19肯定在值为17的结点后面。值为17的结点最高层指向值为19的结点,就找到了!

2022-10-23 12:46:07 619

原创 23种常用设计模式之一:单例模式

日常编写代码中存在着太多, 一个类只需要一个实例的情况,所以了解单例模式有助于我们提升编码的能力。

2022-09-24 16:37:19 476

原创 I/O多路复用系统调用poll、epoll

poll、epoll

2022-09-23 20:21:04 451

原创 利用I/O多路复用系统调用select实现一个高效服务器模型

select只负责等待文件描述符就绪(可以同时等待多个),然后通知应用程序进行I/O读写操作。

2022-09-20 11:43:33 187

原创 五种IO模型

阻塞I/O、非阻塞I/O、信号驱动I/O、多路转接(多路复用) I/O、异步I/O

2022-09-17 16:36:31 211

原创 深入浅出计算机网络OSI模型之应用层(此文重点剖析http协议)

应用层是OSI模型中的最高层。它为应用程序的通信提供服务并且规定应用程序在通信时的协议。

2022-09-07 21:17:59 866

原创 单进程、多进程、线程池三种版本的TCP服务器和客户端(学习套接字必练的宝藏小项目)

三种版本TCP服务器和客户端的简单模拟

2022-08-31 22:09:43 617

原创 C++11智能指针学习笔记及拓展

由于C++没有垃圾回收器,即使遵循代码规范和设计规范,遇到异常,仍旧可能会出现内存泄漏的情况

2022-08-30 17:40:39 371

原创 学网络光会理论,不会编程?教你快速上手网络套接字编程

采用UDP协议的一个 client/server模型

2022-08-28 17:50:46 197

原创 使用C++库实现两个线程交替打印(一个线程打印奇数、一个线程打印偶数)

由于线程的执行函数我使用了lambda表达式,为了让两个线程使用的是同一把锁,把锁创建在了main函数内,并在lambda表达式内使用了引用捕捉。

2022-08-24 11:06:16 1539 2

原创 C++11相较于C++98 标准新增内容:包装器

使用function包装器将这些可调用对象包装成了一个类型,模板也就只需要定义出一份特定的,极大地提升了模板的效率。

2022-08-23 11:41:09 352

原创 C++11新增特性lambda表达式

如果每次比较逻辑不同,就需要实现不同仿函数类,这是极其不方便的。

2022-08-17 19:01:10 491

原创 线程的同步与互斥

临界资源:能被多线程执行流共享访问的资源临界区:线程内部,访问临界资源的代码原子性:一件事情要么不执行,如果执行的话,一直执行完毕互斥:任意时刻只允许一个线程进入临界区访问临界资源同步:访问临界资源的过程,在安全的前提下,让访问临界资源具有合理性。...

2022-08-08 17:26:40 1938

原创 AVL树插入新节点后调整的四种情况(左单旋、右单旋、双旋)

虽然插入之后,依旧会保持二叉搜索树的特性,但AVL树的特性可能被破坏了。

2022-08-03 20:26:57 425

原创 Linux多线程的概念

线程是在进程内部(地址空间内)运行的一个执行分支(执行流),属于进程的一部分,粒度比进程更细、更轻量化。在还没有谈及多线程之前,我们所谈论的进程,内部都是单执行流的,也就是进程只有一个PCB。...

2022-07-30 21:37:17 121

原创 小试牛刀Linux信号

生活中处处是信号。当早晨的闹钟响起当赛道上的信号枪响起当路口的红绿灯绿灯亮起……当信号产生时,我们就知道接下来该做什么了。

2022-07-29 15:07:11 531

原创 进程间通信学习笔记

但进程之间是相互独立的,一个进程无法看到另一个进程的资源。操作系统提供公共资源的方式可以以文件的方式、队列的方式、也有可能是以原始内存块的方式,这也就导致了进程通信的方式有多种。...

2022-07-28 11:21:45 117

原创 inode、软链接、硬链接

文件=文件内容+文件属性。

2022-07-23 23:47:36 344

原创 二叉搜索树的简易实现及剖析

二叉搜索树又被称为二叉排序树,它可以是空树,如果它不是空树则具有如下性质

2022-07-22 14:19:41 423

原创 理解多态,让不同的“人”做同一件事情会产生不同的结果

多态:多种形态。具体一些,就是不同的对象去做同样的行为,会产生出不同的状态。

2022-07-20 16:07:44 168

原创 文件操作系统调用接口、文件描述符的剖析、重定向的原理

对文件进行操作的第一步首先就是要将文件打开,文件未打开之前是保存在磁盘中的,而打开后就被加载到内存中了,之后我们就能对文件进行操作。

2022-07-01 15:41:55 245

原创 C++的重大特性之一:继承、菱形继承

继承

2022-06-30 22:59:03 874

原创 进程控制:进程的创建和进程ID

进程的ID,可称为PID。它是进程的唯一标识,类似于我们的身份证号是唯一标识

2022-06-16 14:45:10 495

原创 进程程序的替换

使用fork创建子进程后执行的是和父进程相同的程序,但是那样并没有多大的意义,子进程往往会“程序替换” 去执行另一个程序。程序替换的特点就是:不创建新的进程,仅仅替换掉该进程的代码和数据。...

2022-06-15 21:04:41 159

空空如也

空空如也

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

TA关注的人

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