- 博客(42)
- 资源 (6)
- 收藏
- 关注
原创 TrueType字体文件提取关键信息
TrueType字体通常包含在单个TrueType字体文件中,其文件后缀为.TTF。OpenType字体是以类似于TrueType字体的格式编码的POSTSCRIPT字体。OPENTYPE字体使用.OTF文件后缀。OPENTYPE还允许把多个OPENTYPE字体组合在一个文件中以利于数据共享。这些字体被称为TrueType字体集(TrueType collection),其文件后缀为.TTC。......
2022-06-27 10:40:09
3349
原创 《八大排序深度剖析》
排序:所谓排序,就是使一串记录按照其中某个或某些关键字的大小,递增或递减的排列起来的操作。排序分为内排序和外排序。内部排序:数据元素全部放在内存中的排序;外部排序:数据元素数量太大,不能同时放在内存中,需要借助外部设备的排序。
2022-03-20 11:35:28
611
30
原创 僵尸进程和孤儿进程
进程状态分为多种,有运行状态、浅度睡眠和深度睡眠状态、暂停状态、死亡状态,这些在小编的上一个博客中有所提到,如果对此有不懂的读者可以自行翻阅。除此之外,还有僵尸进程、孤儿进程和守护进程,许多同学搞不懂僵尸进程和孤儿进程,这篇文章会详细为大家进行讲解。
2022-03-13 15:45:28
3080
20
原创 深入认识《exit VS _exit》
exit VS _exitexit()_exit()exit() VS _exit()今天带大家来学习两个函数,就是完成进程正常退出的两个函数,exit和_exit。本篇博客是通过实际代码一步一步推出结论,大家不可只读文字,需要结合图片中的代码一同观看。
2022-02-28 09:11:46
811
16
原创 我有一万种方法让你对系统调用 - fork 了如指掌
深入浅出 - fork1、认识并使用fork二级目录三级目录1、认识并使用fork 我们知道fork是一个系统调用函数,其作用是创建子进程。这个fork有许多细枝末节的难点和知识点需要我们学习并熟练掌握,我们接下来将采用代码实验的方法,深入学习fork的一些操作和难点。 1.1 查看fork使用手册 fork函数其返回值是一个pid_t类型的值,说白了就是一个无符号整型unsigned int,其形参为void,说明不用传任何参数。函数调用成功给父进程返回创建子进程的pid,并给子进程返货0
2022-01-09 10:30:57
940
13
原创 我有一个朋友仅用了30min就搞清楚了冯诺依曼体系结构
冯诺依曼体系结构1、冯诺依曼人物简介2、冯诺依曼体系结构发展背景3、冯诺依曼体系结构4、冯诺依曼体系结构分析5、冯诺依曼体系实际应用(QQ通信)6、总结1、冯诺依曼人物简介 约翰·冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是罗兰大学数学博士,是现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”。 冯·诺依曼先后执
2022-01-04 12:53:41
9605
18
原创 深入理解软硬链接
软硬链接1. 软链接的创建2. 硬链接的创建3. 软硬链接的区别(inode、硬链接数) 软硬链接不管是在Linux系统还是Windows系统中都无处不在,我们windows下,桌面的各种应用图标就是一种链接,那这种链接是软链接呢?还是硬链接呢?那我们把QQ的图标删除之后,QQ是不是就不能再使用了,这些都与链接有关,本篇文章小编将详细介绍软硬链接的区别和他们的创建。1. 软链接的创建 软链接的建立命令是ln -s,如下图,我们目录下只有test.c这一个文件,我们尝试创建一个软链接来看看,ln -
2021-11-20 10:26:24
971
5
原创 搞懂缓冲区,看这篇文章就够了
不管是操作系统,还是学语言,大家应该都听过缓冲区,那么什么是缓冲区?缓冲区又位于什么地方?在这篇文章,小编将带你了解缓冲区。❄️❄️❄️先让我们欣赏下面的一张图,让我们恭僖EDG夺得冠军。❄️❄️❄️缓冲区1、缓冲区的引出1.1 “\n”1.2 fflush2、缓冲方案3、缓冲区的提供者3.1 通过代码观察现象3.2 结果分析和原因剖析3.3 结论4、内核缓冲区1、缓冲区的引出1.1 “\n” 对于下面的代码,他们的执行结果会是怎样的呢?int main(){ printf("你好呀,
2021-11-08 15:23:45
3238
8
原创 到底什么是文件描述符???
文件描述符1、文件描述符的引入1.1 系统调用接口的引入1.2 文件描述符2、文件描述符2.1 演示文件描述符2.2 文件描述符的返回值2.3 文件描述符底层原理(重点)2.3 文件描述符修饰规则3、总结1、文件描述符的引入1.1 系统调用接口的引入 不管是学习语言还是学习操作系统,IO流是我们学习过程中不可获取的一个阶段,在这一部分我们会学习打开文件、读写文件等操作,在C语言中我们打开文件调用的是C语言的库函数接口,像fopen打开,fclose关闭,fputs写入,fgets读取,这些都是在C
2021-10-28 11:27:57
11031
14
原创 yum到底是干什么的?
使用Linux系统的同学肯定知道yum这个工具,而且网上有很多关于yum的配置,我们在需要使用yum的时候只需要找到相关文章按步骤操作即可。我在使用yum的时候同样是这样,但是yum究竟是什么?他到底起到了什么样的作用? 接下来跟随小编的步伐,我们一起来探索。1、开胃篇 在本节中,小编会给大家说一些关于windows和Linux的常识,希望对大家有所帮助。 1.1 首先需要知道的是,所有注重服务的软件是需要收费的,而Linux下的软件是几乎不考虑用户体验的(因为Linux的用户基本都是工.
2021-10-21 22:49:16
20795
27
原创 从尾到头打印链表
从尾到头打印链表(点击链接进入题目)描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1]示例1 输入:{1,2,3} 返回值:[3,2,1]示例2 输入:{67,0,24,58} 返回值:[58,24,0,67]法一:我们发现数组元素的遍历和链表元素的遍历是相反的,这让我们想到了栈的特性,所以我们可以利用栈来实现。class Solution {public: vect
2021-10-18 10:56:15
228
1
原创 深入浅出之C++中的继承
继承1、继承的概念和定义1.1 继承的概念1.2 继承的定义1.3 继承关系和访问限定符1.4 继承基类成员访问方式的变化2、继承中父子类的赋值转换3、继承中的作用域4、继承中派生类(子类)的默认成员函数5、继承与友元的关系6、继承与静态成员的关系7、菱形继承8、虚继承9、总结1、继承的概念和定义 在进入本章内容之前,我们需要先明确什么是继承?继承的作用是什么? 继承是为了完成类级别的代码复用,继承表示的是父子类的关系。1.1 继承的概念 继承(inheritance)机制是面向对象程序
2021-10-13 22:19:40
535
10
原创 替换空格为%20
替换空格(点击链接进入题目)描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。题目分析:原字符串是包含空格的,而变化之后的字符串长度增加,且将空格替换为%20。法一:我们直接利用C++的string,创建一个string类的对象,然后遍历原字符串,当遇到非空格时,即在string类对象的末尾插入字符,若遇到空格,则在string类对象的末尾插入“%20”字符串。class Sol
2021-09-14 22:02:32
534
2
原创 旋转数组的最小数字
旋转数组的最小数字(点击链接进入题目)描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。示例1 输入:[3,4,5,1,2] 返回值:1法一:线性遍历,定义一个min变量用来存储最小值,然后遍历数组,遇到小的就更新min,最后输出min。代码较简单,但是时间复杂度为O(N)。不推荐。class Solution {public: int
2021-09-11 10:46:24
146
2
原创 调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面(点击链接进入题目)描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。题目分析:针对本题,我们有不同的方法来解决,本题中保证奇数和偶数之间的相对位置不变是一个难点,读者们可以分别考虑两种情况:a-相对位置变化;b-相对位置不变。法一:我们很容易想到的一个方法就是对数组进行遍历,此时借助一个辅助数组newarray,遍历第一遍数组找出奇数,挨个尾插
2021-09-09 14:53:29
1010
原创 重建二叉树
重建二叉树(点击链接进入题目)描述给定某二叉树的前序遍历和中序遍历,请重建出该二叉树并返回它的头结点。说明: 返回根节点,系统会输出整颗二叉树对比结果示例1 输入:[1,2,4,7,3,5,6,8],[4,7,2,1,5,3,8,6] 返回值:{1,2,3,4,#,5,6,#,7,#,#,8}示例2 输入:[1],[1] 返回值:{1}示例3 输入:[1,2,3,4,5,6,7],[3,2,4,1,6,5,7] 返回值:{1,2,5,3,4,6,7}题目分析:题
2021-09-08 19:45:15
195
3
原创 二维数组中的查找
二维数组中的查找(点击链接进入题目)在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21
2021-09-07 11:41:02
199
4
原创 类和对象三部曲(中)
在类和对象三部曲(上)文章中,我们知道了类和对象的基本定义、访问限定符、封装和this指针的概念,但是上面的知识点只是类和对象中很小的一部分,今天我们给大家讲解一下类的6个默认成员函数及他们的模拟实现过程,帮助大家更好的理解类的概念。类和对象(中)类的6个默认成员函数1、构造函数1.1 构造函数的引出1.2 构造函数的特性1.3 构造函数的实现1.4 什么是默认构造函数2、析构函数2.1 析构函数的概念2.2 析构函数的特性2.3 析构函数的实现2.4 系统自动生成的析构函数都做了什么?3、拷贝构造函
2021-09-07 11:15:48
372
5
原创 逆波兰表达式求值
逆波兰表达式求值(点击链接进入题目)题目:根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。题目分析:我们观察发现,在逆波兰表达式中,其给定的表达式中,运算符的优先级已经是最优的了,即我们在遍历后缀表达式时,遇到操作符就要用操作符计算前面的两个值,并将结果保存,继续向后遍历。 因此,我们可以
2021-09-07 11:13:43
297
1
原创 字符串相加
字符串相加(点击链接进入题目)给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。提示: num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前导零 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式题目分析:法一: 我们先假设给定的不是字符串形式的数字,而是正常的非负整数,则两数相加遵循正常的加法运算,个位数与个位数相加,十位数与十位数相加,如果该位计
2021-09-04 10:37:11
3907
3
原创 只出现一次的数字(Ⅰ、Ⅱ、Ⅲ)
只出现一次的数字(Ⅰ)(点击链接进入题目)只出现一次的数字(Ⅱ)(点击链接进入题目)只出现一次的数字(Ⅲ)(点击链接进入题目)Ⅰ题目描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1: 输入: [2,2,1] 输出: 1示例 2: 输入: [4,1,2,1,2] 输出: 4题目分析:抓住规律,不管元素有多少个,只有一个数字出现了一次,其它都出现了两次。本题我们借助异或来解决,异或:相同为0,相异为1,且
2021-09-01 10:49:17
205
2
原创 字符串转整型数字
字符串转整型数字(点击进入题目)描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述: 输入一个字符串,包括数字字母符号,可以为空返回值描述: 如果是合法的数值表达则返回该数字,否则返回0示例1 输入:"+2147483647" 返回值:2147483647示例2 输入:“1a33” 返回值:0题目分析:1、首先需要明确的是,什么是合法的数值表达式,如果该字符串中含有任意字母,则表明该字符串不
2021-08-31 10:48:53
731
4
原创 找出字符串中第一个只出现一次的字符
题目描述: 找出字符串中第一个只出现一次的字符输入描述: 输入几个非空字符串输出描述: 输出第一个只出现一次的字符,如果不存在输出-1示例输入:asdfasdfo aaoo输出:o -1题目分析: 1、首先我们看到示例的输入是多行输入,所以我们在写输入函数的时候就要使用getline函数来防止因回车导致的数据失效。 2、我们从示例输入代码的第一个字符a看起,a在后面还出现过,不符合只出现一次,所以来到第二个字符s,s也在后续出现了,… … …依次往后走,来到了.
2021-08-30 18:16:08
2459
1
原创 Linux项目自动化构建工具---make/makefile
????不知道大家有没有听说过这样的一句话,不会写makefile就不算一个程序员。这家伙好啊,直接把我程序员的饭碗砸了,这我能忍???为了保住大家的饭碗,我来给各位读者详细解读一下make/makefile。???? 小编奉劝各位不要轻易说一些不经过思考的话,毕竟我辉辉都说过,砸人饭碗,堪比杀生。要不然你预购的diss已经在路上了。废话不说了,让我们进入今天的主题。make/makefile1、make/makefile的引出2、make/makefile是什么3、make/makefile的使
2021-08-29 21:28:21
1308
9
原创 这里有你不知道的关于Linux中权限的知识
我们在平常玩电脑的时候,经常会遇到这样的情况,系统报错:您无权限访问该资源。 这就是因为权限的问题而导致的问题,不仅在windows系统中会遇到这样的问题,在我们Linux系统中我们也会遇到这样的情况。 通过对本篇文章的阅读,小编会将Linux中权限的知识掰碎了给大家说明一下,希望这篇文章可以对大家对Linux的学习有所帮助。Linux权限Linux权限的概念Linux权限管理文件访问者的分类文件类型和访问权限文件权限值的表示方法文件访问权限的相关设置方法Linux权限的概念 各位应该
2021-08-26 21:25:42
2065
12
原创 Linux常用命令汇总(带代码示例)
????Linux常用命令汇总????: 众所周知,Windows的交互方式是图形化界面,Linux的交互方式是命令行;在Linux操作系统当中可以进行各种语言的开发工作,我们可以通过命令进行各种指令操作,从而完成文件相关的管理工作。 ????接下来,小编带大家学习一下Linux常用的一些命令,帮助大家快速入门Linux的基本操作。不管大家学的怎么样,下图种的代码千万不敢运行,使用云服务器的系统还好,可以后台恢复,如果是装有虚拟机系统的同学,如果运行图中的代码会让系统直接不可逆转性的崩溃。下面
2021-08-02 17:02:41
2522
3
原创 String类的模拟实现
C++最重要的模块之一就是string类,很多人在这一节点被劝退,在本篇文章中小编将逐个为你们突破,分模块将string中几个重要的接口实现,如果对string类有困难的读者们,强烈推荐仔细阅读本文章。 本章没有废话,全是干货,请读者们仔细阅读!!!!!!1、string类的四个默认成员函数 一个类有6个默认成员函数,其中取地址重载相关的成员函数这里不做讲解,我们实现剩下的四个默认成员函数: A:构造函数–主要完成初始化工作 B:拷贝构造函数–同类对象的初始化 C:赋值重载函数–
2021-07-27 15:58:04
544
1
原创 类和对象三部曲(上)
类和对象(上)1、面向过程和面向对象的区别2、类的引入和定义3、类的访问限定符及其封装3.1访问限定符3.2封装4、类的作用域5、类的实例化6、 类对象模型7、 this指针1、面向过程和面向对象的区别 众所周知,编程语言分为面向对象和面向过程两大类,那么什么是面向对象,什么又是面向过程呢??? 我们以外卖为例对此进行分析:面向过程:订外卖、送外卖、取外卖。重点在这三个过程,每个过程什么人去做,怎么做。面向对象:商家、骑手、客户。分三个对象,每个对象有目标和任务,该做什么是明确的。 C语
2021-07-19 17:55:01
641
6
原创 一篇文章带你学习C和CPP的内存管理
C和C++内存管理C和C++内存分布C和C++动态内存管理方式new和delete实现原理C和C++内存分布C和C++动态内存管理方式new和delete实现原理
2021-06-06 17:45:04
667
13
Linux系统、网络、MySQL
2022-06-10
秋招公司大名单汇总,包括央企国企省属企业,互联网、银行、
2022-06-09
C、C++、数据结构复习思维导图
2022-04-19
C++常问的面试资料总结整理
2022-04-19
TCMalloc代码框架
2022-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人