- 博客(49)
- 收藏
- 关注
原创 影像数据处理
噪声是图像中非真实的随机干扰,常见类型包括高斯噪声和椒盐噪声。下面两幅图可以直观感受一下两种噪声对图像的影响。高斯噪声:由传感器发热引起,呈正态分布。椒盐噪声:随机黑白像素点,常见于传输错误。接下来介绍两种常见的去除这两种噪声的方式,分别是均值滤波和中值滤波。影像数据处理是计算机视觉任务的核心基石,其目标是通过系统化的方法提升数据质量、丰富数据多样性,并为模型训练与推理奠定坚实基础。
2025-04-21 16:57:22
702
原创 C++ 【右值引用】极致的内存管理
当右值引用绑定到一个常量时,引用并不会直接指向常量区的数据,而是将数据拷贝到栈区,然后让引用指向栈区中的数据。因此,右值引用常量时的真实操作是:将常量区中的数据拷贝到栈区,并且引用指向栈区的数据,这样就避免了对常量区数据的非法修改。右值引用不仅仅是为了优化性能,它还引入了一种新的语义,使得程序能够高效地管理资源,尤其是在避免不必要的拷贝构造时。当我们需要返回一个对象时,使用右值引用可以避免不必要的拷贝,将对象的所有权直接转移到目标位置,从而提升性能。右值引用和移动构造的出现,解决了对象返回时的拷贝问题。
2025-02-24 19:03:56
1349
原创 基于Liunx理解文件系统(下)
至此,我们已经了解了如何存储和管理文件的属性和内容。:存储当前分组所有文件的inode。:标识当前分组的inode使用情况。:管理当前分组的数据块。:标识当前分组的数据块使用情况。GDT(Group Descriptor Table):宏观描述一个分组。:描述一个分区,是文件系统的核心结构。Boot Block:描述整个硬盘的分区情况,帮助计算机加载操作系统。
2025-02-10 10:32:52
1142
原创 基于Linux系统理解 IO文件系统
在正式说明 Linux 中是如何对文件进行 IO 前,我们先简单回顾一下 C 语言中是如何进行文件的 IO 操作的。对于 C 语言部分接口,本博客不做详解,只回顾一些重要概念。fopen 用于打开文件,包含在头文件 中,函数原型如下::打开文件路径,可以是绝对路径或相对路径:打开文件的模式常见的打开文件模式有: 会返回一个 类型的指针。在 C 语言中,通过操作这个 来控制文件的 IO。当我们打开文件时,每个被使用的文件都会在内存中开辟一个相应的文件信息区,用来存放文件的相关信息。这些信息保存
2025-02-10 10:26:22
1561
原创 Linux系统 环境变量
对于环境变量,本篇主要介绍基本概念及三四个环境变量 —— PATH、HOME、SHELL、HISTSIZE,其中 PATH 作为 “ 敲门砖 ”,我们会更详细讲解;理解环境变量的全局属性 —— 环境变量是可以被子进程继承(注意区分 C++ 里的继承);环境变量的组织方式。其次会介绍命令行参数 —— main 函数的参数。
2025-02-03 22:12:32
1870
原创 Pandas数据分析(三)【电信客户流失数据集】
通过本篇博客的学习,我们不仅深入理解了电信客户流失数据的结构,还掌握了如何利用 Pandas 对数据进行高效处理和分析。在实际业务中,分析客户流失数据能够帮助企业发现客户流失的潜在风险,制定有效的留存策略,提升客户的忠诚度和公司收益。数据分析不仅是技术活,更是决策支持的核心工具。希望大家通过这篇博客能收获更多的数据分析技巧,并在实际项目中加以应用,提升分析能力。
2025-01-27 01:08:05
1887
原创 Git原理与应用(三)【远程操作 | 理解分布式 | 推送拉取远程仓库 | 标签管理】
最早,肯定只有⼀台机器有⼀个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是⼀样的,并没有主次之分。其实⼀台电脑上也是可以克隆多个版本库的,只要不在同⼀个目录下。实际情况往往是这样,找⼀台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆⼀份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别⼈的提交。可以简单理解为,我们每个⼈的电脑上都是⼀个完整的版本库,这样你⼯作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
2025-01-20 20:18:46
1335
3
原创 Pandas 数据分析(二)【股票数据】
在数据分析的领域中,股票市场是一个非常热门且富有挑战性的分析对象。通过对股票数据的深入分析,我们不仅能够了解市场趋势,还能为投资决策提供有力支持。本文将通过一个包含日期、开盘价、最高价、最低价、收盘价以及交易量的股票数据集,结合pandas库完成10道数据分析题目。每个问题都将帮助我们从不同角度探索股票市场的动态变化,让你在掌握数据分析技巧的同时,对股票市场的理解更上一层楼。通过本博客,我们不仅练习了pandas库的基本操作,还学习了如何从股票数据中提取有价值的信息。
2025-01-20 13:24:38
1382
原创 Pandas数据分析 【Series | DataFrame】
其实pandas市面上教程很多,但是多数缺少实操,这个库长时间不用老能忘记,为了方便自己复习,这次我找了100个题目敲一遍,以博客的方式记录,减少自己之后的回顾成本。
2025-01-20 10:14:28
1342
1
原创 Git原理和应用(二)【分支管理 | 合并冲突 | 分支策略 | 分支维护】
假设你准备开发⼀个新功能,但是需要两周才能完成,第⼀周你写了50%的代码,如果⽴刻提交,由于代码还没写完,不完整的代码库会导致别⼈不能⼲活了。如果等代码全部写完再⼀次提交,⼜存在丢失每天进度的巨⼤⻛险。现在有了分⽀,就不⽤怕了。你创建了⼀个属于你⾃⼰的分⽀,别⼈看不到,还继续在原来的分⽀上正常⼯作,⽽你在⾃⼰的分⽀上⼲活,想提交就提交,直到开发完毕后,再⼀次性合并到原来的分⽀上,这样,既安全,⼜不影响别⼈⼯作。
2025-01-16 11:08:47
1365
原创 Git的原理与应用【原理 | 创建配置 |认识分区 | 基本操作】
还需要再明确⼀点,所有的版本控制系统,Git 也不例外,其实只能跟踪文本文件的改动,比如 TXT 文件,网页,所有的程序代码等等。但在此之前的工作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的文件就越来越多,文件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各⾃都是修改了什么吗?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是⼀个修改,删了⼀些又加了⼀些,也是一个修改,甚⾄创建⼀个新文件,也算⼀个修改。,当前,我们再次⽤ git。
2025-01-13 13:31:09
1405
2
原创 【C++】| STL算法库详解 | 修改序列的算法、非修改序列的算法、排序和相关操作、数值算法
算法可以分为几大类,包括修改序列的算法、非修改序列的算法、排序和相关操作、数值算法等。STL算法库全在这里啦!!!!!!!!!
2024-08-05 22:48:01
934
原创 【Linux进程理解】| 冯诺依曼体系结构 | 操作系统 | 进程理解 | 状态 | 优先级
从此篇开始,就开始==学习 Linux 系统==部分 —— 进程,最近在准备挑战杯项目,这篇长文陆陆续续写了一个月才感觉完善了,在正式学习 Linux 进程之前,我们需要铺垫一些概念,如冯诺依曼体系结构 (解释可执行程序运行时,必须先加载到内存的原因)、操作系统的概念及定位、进程概念,我们会先铺垫理论,再验证理论等等......
2024-07-29 14:15:11
1315
1
原创 【Linux】|开发工具介绍 | yum |vim | gcc/g++ | gdb | git
在Linux系统上进行开发,掌握和使用合适的工具能够大大提高开发效率和代码质量。本文将详细介绍几种常用的Linux开发工具,包括软件包管理器Yum、编辑器Vim、编译器GCC、调试器GDB、构建工具Makefile以及版本控制系统Git。通过这些工具的使用,你将能够更高效地进行软件开发和维护。
2024-07-12 16:21:58
2013
原创 【C++与python】| splice语法对比列表切片
C++ 中的splice:主要用于在std::list容器中移动元素。它可以移动整个列表、单个元素或一个范围的元素。Python中的列表切片:用于访问、修改、插入和删除列表中的部分内容。切片操作非常灵活,适用于各种序列操作。C++的splice专为双向链表设计,而Python的切片操作适用于所有序列类型(如列表、字符串、元组)。
2024-07-09 10:07:46
1007
原创 【C++ | 继承】|概念、方式、特性、作用域、6类默认函数
继承是面向对象编程中的一个重要概念。它的由来可以追溯到软件开发中的模块化设计和代码复用的需求。在软件开发过程中,我们经常会遇到需要为多个类添加相同的行为或属性的场景,这样就产生了代码重复的问题。为了解决这个问题,工程师们开始寻找一种方法来实现代码的复用。继承就是一种解决代码复用问题的方式。它允许我们创建一个新的类,继承自一个已经存在的类,从而继承和复用父类的属性和方法。通过继承,我们可以在不改变父类的前提下,为子类添加额外的属性和方法,实现功能的扩展。继承方式的由来可以追溯到早期的面向对象编程语言。
2024-07-01 18:04:36
1928
原创 【Linux权限】 Linux权限管理 | 粘滞位
权限本质上是决定某件事情,某人能否做。Linux下文件权限的组成✨文件权限 = 人 + 事物属性文件权限属性:r(读)、w(写)、x(执行权限)人 (不是特定具体的人,而是一种角色):拥有者、所属组、other (其它)
2024-02-20 22:44:54
1234
1
原创 【C++初阶:类和对象(下篇)】初始化列表 | static成员 | 友元
对于 B,我们不写构造函数,编译器会默认生成 —— 内置类型不处理,自定义类型会去调用它的默认构造函数处理 (无参的、全缺省的、编译器默认生成的),注意无参的和全缺省的只能存在一个,如果写了编译器就不会生成,如果不写编译器会默认生成。A aa2 = 1;友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加 friend 关键字。因为 B 作为 A 的内部类,跟普通类没有什么区别,只是定义在 A 的内部,它受到 A 的类域的限制和访问限定符的限制。
2024-02-14 19:47:47
1505
3
原创 this指针剖析
不同的编译器放在不同的位置,可能是栈,也可能是寄存器,(VC++编译器是放在ECX中,其它编译器有可能不同,也就是成员函数的其它参数正常都是存放在栈中。增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量”的操作,都是通过该指针去访问。Date类中有 Init 与 Print 两个成员函数,函数体中没有关于不同对象的区分,那当d1调用 Init 函数时,该函数是如何知道应该设置d1对象,而不是设置d2对象呢?A、编译报错 B、运行崩溃 C、正常运行。
2024-02-07 23:52:53
557
2
原创 用两个队列实现栈
准备两个队列,第一个队列依次出队到只剩一个数据时停止,将已出队的数据依次入队到第二个队列,将第一个队列仅剩的一个数据出队即实现了栈的出栈。入栈时哪个队列不为空则在哪个队列入队。
2024-02-05 17:33:41
376
6
原创 详解C++中auto关键字
在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,大家可思考下为什么?C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。return 10;auto b = a;//typeid(变量名).name()是C++中查看变量类型的一种方式。
2024-02-02 17:21:59
629
6
原创 类与对象(上)
上面结构体的定义,在C++中更喜欢用class来代替类体:由成员函数和成员变量组成 };一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式:声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理类声明放在.h文件中,成员函数定义。
2024-02-02 17:21:13
910
1
原创 让姥姥扔掉日历的好方法(娱乐向)
春节将至,家中老人往往有查看日历的习惯,学会这招迅速查看日历帮老人安装好Xshell,连接到自己的云服务器输入cal指令ok了,直接孝出强大
2024-02-01 16:48:22
441
1
原创 详解单链表OJ题
定义两个指针指向头节点,先让快指针fast走k步,再让两个指针同时走,这样的话,两个指针之间的距离就是k,当快指针指向空的位置时,慢指针就指向了倒数第k的位置。定义一个慢指针slow一次移动一个节点,一个快指针fast一次移动两个节点,当快指针走完时,返回慢指针,指向的就是中间节点。创建两个链表,把小于x的值放到链表1,大于x的放到链表2,再把两个链表连接起来。思路二:将原链表按照顺序头插到新链表,这样操作完,原链表的顺序就正好反转了。还有一个要注意,节点相交是说节点地址一样,而不是里面的值是相等的。
2023-12-08 14:56:47
438
5
原创 链表(一)----关于单链表的一切细节这里都有
现实中的链表结构数据结构中的链表结构1.链式结构在逻辑上是连续的,但在物理上不一定是连续的。2.现实中的节点一般是在堆上申请出来的。3.从堆上申请的空间,是按照一定的策略来分配的,两次申请的空间可能连续,可能不连续。
2023-11-17 21:28:00
332
12
原创 结构体好题--成绩单(习题9.5)
在代码开头,我们引入了stdio.h头文件以使用输入/输出函数,引入了string.h头文件以使用字符串相关的函数。同时,我们定义了两个常量MAX_LENGTH和MAX_STUDENTS,分别表示学生信息中字符串的最大长度和最大学生人数。10100我们使用结构体Student来表示每个学生的信息。结构体包含了学生的学号、姓名、三门课程的成绩和总分。} Student;
2023-11-03 23:02:38
481
4
原创 C习题--数字翻转
在main函数中,我们首先输入一个整数N,然后调用reverseInteger函数得到反转后的新数,并将其输出。首先定义了一个名为reverseInteger的函数,该函数接受一个整数参数num,并返回反转后的新数。然后使用循环逐位将数字反转,最后根据之前记录的符号,将反转后的数变为负数(如果需要),并返回结果。在函数内部,我们首先判断给定整数num的正负性,如果为负数,则将其转为正数处理,并记录下来。
2023-11-02 17:02:42
286
2
原创 统计日期---结构体OJ题
3.在getdayofyear函数中创建数组daysInMonth,用来存放每月的天数 对于完整经过的月份直接将天数相加,注意考虑闰年的情况,再创建isleapyear函数判断一下。2.在主函数中调用Date,并对其成员赋值。1.先创建结构体变量Date储存年月日。4.将没有完整经过的月份天数加进去。
2023-10-26 13:04:28
172
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人