自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C/C++】虚函数

使用virtual修饰的函数称为虚函数;虚函数可以是类中的成员函数、析构函数;不能是构造函数。对于虚函数,在派生类中的同名(函数名、参数和返回值都相同),则默认为虚函数。一般情况,类中析构函数都使用虚函数表示,或者使用纯虚函数表示;此时派生类中的析构默认为虚析构函数。虚函数:virtual修饰的成员函数,有函数体为虚函数,通过父类指针 使用子类重写的虚函数。以实现多态。纯虚函数:virtual修饰的成员函数=0,没有函数体。所在的类为抽象类不能实例化对象。

2023-08-22 10:05:33 113

原创 【C】设计一个读者-写者模式,要求用多线程实现三个进程写数据,五个进程读数据

这一技术的实现是利用了读写锁,为避免在读进程读的时候写进程同时在写,从而导致数据读取错误吗,这里需要用到读写锁,即当都进程读的时候上锁,防止在读的过程中写进程写数据,而写进程在写的时候也上写锁,防止还没有写完数据读进程就开始读取了。读者-写者模式在现实中有很多的应用场景,在读数据的频率大于写数据的频率的情况下,读者-写者 模式的效率很高。

2023-07-05 08:25:52 175

原创 【C/C++】为什么不可以返回局部变量的地址,但可以返回局部变量的值?不能返回局部变量的引用

在调用aTestFun01()的时候定义了a = 98,但是在返回之前,整块空间就已经被释放了,这个局部变量a的地址丢不回来,返回的是一个随机数。这是已经保存了局部变量a的地址,即使TestFun01函数空间被释放了,这个a也暂时存储在寄存器里,这是如果直接打印是可以得到返回值a的值的。i = 0 ⇒ 开辟f()的空间,执行函数体,释放函数空间。i = 1 ⇒ 开辟f()的空间,执行函数体,释放函数空间。i = 2 ⇒ 开辟f()的空间,执行函数体,释放函数空间。

2023-06-07 20:31:17 361

原创 【C++官方文档】strtok的实现原理

strtok的使用格式:作用:分割字符串str,str是将要分割的字符串,按照delimiters里的字符集去分割,返回分割后的结果。上述例子是把 “- This, a sample string.” 按照 " ,.-" 分割,也就是按照空格、逗号、英文句号、短横线分割输出:Thisasamplestring。

2023-05-20 14:52:17 187

原创 《C Primer Plus》课后习题8.10

4、编写一个程序,把输入作为字符流读取,直到遇到EOF。统计每个单词的平均字母数,不包含空格、标点符号等。

2023-05-08 16:52:59 61

原创 【C】缓冲区

缓冲区是一个类似于“ 草稿 ”的机制,先将输入或者输出写到缓冲区,然后再将缓冲区内的数据输出到屏幕,这样做的好处是可以先输入一串字符,包含空格等分隔符在内,然后将整个字符串输入或者输出。但也会出一些细节方面的问题:比如:出现了这个问题:我按下一次n本应该提问一次然后我在按下n或者y,但是现在是我按下一次n,系统提问两次,相当于中间跳过了一次。

2023-05-08 11:03:30 41

原创 《C Primer Plus》练习题:7.12编程练习

4、用if else语句编写程序读取的输入,直到#。利用一个感叹号代替每个句号,将原有的每个感叹号用两个感叹号代替,最后输出进行了多少次替换。2、编写一个程序,该程序输入直到遇到#字符。使程序打印每个输入的字符以及它的十进制ASCll码,每行打印8个字符/编码对。1、编写一个程序,该程序读取输入直到遇到#字符,然后报告读取的空格数目、读取的换行符数目以及读取的所有其他字符数目。

2023-05-07 23:26:54 105

原创 【C】结构体的内存占用问题,为什么我的结构体占用的空间那么大啊

结构体在存储的时候,会根据内部数据的数据类型开辟空间,但是按照相邻的数据成员变量的最大对齐方式进行字节对齐,并且影响整个结构体的空间大小这三个结构体个占用多少个字节?现在用 sizeof() 关键字去验证一下:为什么都是一个char、一个short、一个int,但是所占用空间会不同?那他们在内存中是怎么分布的?

2023-05-06 16:19:03 257

原创 【C】一些C语言封装函数的使用练习题

解析: \n、\1、\都各自表示一个字符,因为“ \ ”是转义字符,\n是一个换行符,\是输出" \ ",\1是ASCII码值为1的那个字符。strlen( p ):因为p中的具体元素一共有11个字母,每个字母都占用一个字节,所以输出11,最后答案是20,11。sizeof( p ):因为char p[20]开辟了20个字节的空间(每个char类型占一个字节),所以是20。记录一下个人看视频做错的的练习题。这应该是个营销号,不是视频原作者。

2023-05-06 11:43:42 66

原创 快速排序C语言指针实现

先找一个数,第一遍是第一个元素,然后把这个数当作标杆,将比它小的放在它左边,比它大的放在它右边。

2023-05-05 19:38:07 148

原创 【C】函数指针、指针函数

先来说一下指针函数说白了函数指针就是一个函数,只是和普通的函数的区别是它返回的是一个指针比如这样:可以看到返回值是一个指针类型,也就是返回的是一个地址。以上函数的功能是将src字符串复制给dest字符串,然后返回的是dest字符串的首地址。

2023-05-05 17:35:16 46

原创 一些函数题(字符串逆置、strlen()、strcpy()、strcat()、strcmp() 、strstr()的手动实现、字符串转十进制整数)

【代码】一些函数题(字符串逆置、strlen()、strcpy()、strcat()、strcmp() 、strstr()的手动实现、字符串转十进制整数)

2023-05-05 09:53:39 82

原创 【C】用C语言做一个很简单的音乐播放器

需要注意的事项就是这些,我也是跟着视频做的,发现自己好多东西不知道,发现了自己的短板,接下来几天学一学几个库的使用。等学的差不多了再添加一下切歌的功能。要求:实现音乐的播放、暂停、继续、关闭,只有这四个功能,当鼠标放在按钮上的时候按钮会变颜色。2.在文件所在位置至少有一张背景图,一首.mp3格式的文件。1.首先你得有相应的头文件,这个自行百度获取。4.mmsystem.h 内置函数的使用。5.graphics.h 内置函数的使用。3.string.h 内置函数的使用。2.数据结构的结构体。

2023-05-02 11:09:23 2419

原创 【内存】如何判断计算机是大端存储还是小端存储?

先定义一个数,就定义成1,因为如果大端存储肯定存的是0x00 00 00 01,而小端存储是0x01 00 00 00。一个int占四个字节,而一个char只需要占一个字节,所以用char型指针保存a的地址,结果一定是从左向右扫描一个字节,但保存的还是起始地址(这里利用了指针的性质),然后再解引用就能得到int型变量a的第一个字节的值,要么是01,要么是00。如果a是大端存储,计算机里存储的是0x00 00 00 01。如果a是小端存储,计算机里存储的是0x01 00 00 00。

2023-04-26 20:48:19 110

原创 约瑟夫环问题,某校2018考研压轴题,C语言实现

比如:500个人参加游戏,从250开始报数,报到第9个人的时候出列,那么第250个人报1,第251个人报2…2) 输入游戏开始的起始编号num和报数字m,则num从1开始报数,当报数到m则退出环。1) 现有从键盘输入n个人参加游戏,编号从0开始;3) 输出最后一个退出环的编号。

2023-04-24 19:24:06 63

原创 输入一个十进制数,输出他的十六进制,十进制转十六进制C语言代码

定义一个char类型的数组,然后对输入的数每次取余16,把余数存到数组对应的位置上,如果大于等于10转化为a ~ f。一些疑问:为什么转成16进制数组长度为8?答:因为因为int占32位,十六进制每一位占4个二进制位,所以开辟32 / 4 = 8个长度就足够用了。当tmp大于10的时候要执行 bit[i++] = tmp - 10 + ‘a’;这句在干什么?

2023-04-23 17:30:02 1515

原创 【C】指针

众所周知,正常的变量里存放的都是数据,但是指针变量里存放的是地址,但是指针有好多种调用形式,先来一起感受一下:就拿上面的案例来说哈:现在p是指针,指向数组arr的起始地址。

2023-04-20 20:17:09 46

原创 【C/C++】存储类型关键字(内存框架、auto、register、extern、static关键字 的解读)

在操作系统中,进程是资源管理的最小单位,每个程序执行至少会创建一个进程。进程创建时候会构建4G内存空间。

2023-04-20 19:15:04 192

原创 【C++】String类

由上图可见string类的字符串可以像数组一样,。。这也是string和字符数组的主要区别。.类设计让。不用提前开辟空间,他会自己动态开辟空间。

2023-04-19 20:01:09 84

原创 【Linux】常用的shell命令(复习汇总版)帮助命令 & 管理命令

语法格式:man 页编号 接口名称页编号 是 [ 1 , 9 ] 的数字编号,可以省略;省略从其实也开始顺序向后依次查找,没有省略则在指定的页中查找;查询到返回帮助信息,未查询到返回错误消息;

2023-04-18 18:45:25 129

原创 【Linux】如何实现物理计算机给Ubantu虚拟机传输文件?

比如我物理机上有这个文件,但是我的虚拟机里没有这个文件,现在我想给虚拟机传,以后就能在虚拟机中打开这个文件。第一步,点击“虚拟机”按钮,然后选择最下边的"设置"。可以看到已经进入到这个文件夹了。也就是说整个文件夹都被成功的传输进来了。ps:从物理机传到虚拟机的文件默认存放在mnt文件下的hgfs文件里。第二步,点击选项—>共享文件夹–>总是启用–>添加。到这儿就传进去了,在虚拟机终端里测试一下。点击浏览,然后找到物理机上的文件路径。

2023-04-18 11:51:30 1506 3

原创 【Linux】如何让虚拟机联网

右上角圈住的部分如果是像现在这样的两个箭头说明有网,这时可以打开火狐浏览器搜索想搜索的问题。如果是上图这样的说明没有联网,现在需要解决这个没有网的问题,我们点击这个图标。假设这是我们的虚拟机(这里用的是VMware软件下创建的ubantu)现在就可以在百度上搜索东西了。

2023-04-17 18:24:10 227

原创 【C++】cin 输入的常用方法

在使用cin是最好头文件部分加上一句using namespace std;这样就可以直接使用 cin >> 了。

2023-04-17 14:41:50 3245

原创 【Linux】文件查看、目录文件创建和删除、文件的复制和移动、通配符

在Linux操作系统中,一切皆文件,不像Windows有文件、注册表、设备管理器等等,Linux里所有的都是文件,本文学习目标:1.文件查看2.目录的创建3.目录的删除4.文件的复制5.文件的移动6.通配符。

2023-04-04 17:22:41 1504

原创 【Linux】目录结构简介 以及 帮助指令的使用

比如:现在我们知道一个关键字passwd,但是我们并不知道他到底是一个命令还是一个配置文件,我们就可以用 man -a passwd 的方式查询。帮助命令一般用来查看一些常用命令的命令是什么,比如我想知道ls是什么意思,是干什么用的,下面我就可以用帮助指令来查询。以上是man命令的介绍,通过命令man 7 man可以发现man命令共有9章的帮助。info帮助比help更详细,但是全是英文版的,需要有阅读英文的能力。可以看出passwd是一个命令,作用是更新一个用户的认证令牌。help + 命令的名称。

2023-04-01 16:03:53 45

原创 【Linux】以用户身份、管理员身份启动Linux系统 以及如何切换字符终端

以用户身份和管理员身份登录Linux操作系统,并切换为字符终端的学习笔记

2023-04-01 10:57:46 2839

原创 【Linux】虚拟机、Linux操作系统的安装 在VirtualBox虚拟机下如何搭建Linux操作系统CentOS7

如何安装VirtualBox虚拟机以及在虚拟机下创建Linux操作系统

2023-03-31 19:26:14 1904 1

原创 操作系统经典面试题汇总(上海理工大学2022考研电子信息专硕,含部分操作系统专业课原题)

1.请你说说进程间的通信方式无名管道       其本质其实是内核中维护的一块内存缓冲区,Linux 系统中通过 pipe()函数创建管道,会生成两个文件描述符,分别对应管道的读端和写端。无名管道只能用于具有亲缘关系的进程间的通信。命名管道       为了克服无名管道只能用于具有亲缘关系的进程之间的通信这一弊端而提出来的  

2022-04-19 19:35:29 961

原创 【opencv】基于opencv实现人脸识别,原理&代码部分

上一部分我们解决了环境问题,这一部分我们可以开始上代码,环境没有配好的可以参照上一篇博客解决:下面先说一下原理:一.原理部分  本文基于opencv来实现人脸识别,大致实现流程可以描述为:  当计算机拿到你输入的图片以后,首先对整个图片先进行灰度处理,即将图片拆解成一个矩阵,矩阵中的每个元素分别代表着图片中每个像素点的像素值,映射范围是0~255,再提取图片中人脸的部分将其框出,然后提取图片特征,即把人脸那一块数据提取出来,经过多个人脸的特征数据和图片的id进行对应,经过大量数据的训练后,计算机就

2022-03-11 13:08:23 17664 11

原创 【opencv】基于opencv实现人脸识别,从环境搭建到代码实现(超详细教程)

前言目标:让计算机通过训练做到认识我或者检测出视频中的人是谁本文是一个学习笔记,记录一下自己的实现过程、在实现过程中遇到的问题以及个人对知识的理解。一.环境配置1.软件安装首先先安装一下必须的软件:pythonpycharmopencv(1)python的安装:建议到python的官方网站下载点击下载即可,下载完成以后记得在安装的时候勾选添加python到PATH(2)pycharm下载这里也推荐在pycharm官网下载(3)安装opencv步骤一:按Windows+r

2022-03-11 10:56:44 11153 3

原创 【剑指offer】JZ2 空格替换: 将字符串中所有的“ “替换成“%20“ Java实现

题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。方法一:用Java内置的 replace() 方法直接替换public class Solution { public String replaceSpace(StringBuffer str) { return str.toString().replace(" ","%20"); }}方法二:手动模拟

2021-01-13 16:44:21 186

原创 江苏大学2006年程序设计压轴题 编程打印如下图形,中间一行英文字母由输入得到,图形随输入英文字母的变化而变化。例如,输入英文字母A得到的图形为:A

题目:编程打印如下图形,中间一行英文字母由输入得到,图形随输入英文字母的变化而变化。例如,输入英文字母A得到的图形为:输入英文字母B得到:输入英文字母D得到的图形为:思路分析把图形看作是上三角形和下三角形,观察上三角形,我们发现:第n个字母在第n行输出(2*n-1)次;随着输入英文字母的不同,前面输出的空格数也不同,若输入字母为D则第一行需要输出3个空格,第二行需要输出2个空格,第三行输出1个空格。若输入字母为B则第一行需要输出一个空格。也就是说输入的是第 a 个英文字母,前面几行需要

2020-12-05 13:28:37 1328

空空如也

空空如也

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

TA关注的人

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