- 博客(44)
- 收藏
- 关注
原创 【C++】类和对象(二)默认成员函数之拷贝构造函数、运算符重载、赋值运算符重载
如果一个构造函数的第一个参数是自身类类型的引用,且任何额外的参数都有默认值,则此构造函数也叫做拷贝构造函数,也就是说拷贝构造是一个特殊的构造函数。拷贝构造函数的作用和构造函数相同,均是将对象初始化化,区别是拷贝构造函数是拷贝一个对象来初始化另一个对象!int _month;int _day;public://全缺省构造函数_day = day;int main()//构造函数aa.print();//拷贝构造。
2025-03-26 23:34:42
1069
33
原创 【前端】超链接标签(a标签)之href属性、target属性
target属性有两个属性值:_self、_blank,决定页面的打开方式。_self为默认打开方式,即我们正常打开时所看到的,而_blank则是用新的标签页打开。如图,目前的页面有三个:demo01.html、demo02.html、html01.html。target:打开方式,默认是_self,如果是_blank则用新的标签页打开。原因:当bref的宽度或高度中任一个为0时,无法显示。href:必须具备,表示点击后会跳转到哪个页面。相当于一个刷新按钮,点击一下,进行页面刷新!
2025-03-26 07:30:00
1454
31
原创 【C++】类和对象(二)默认成员函数之构造函数、析构函数
通俗来说,就是我们不写,编译器默认自动生成的函数。一个类,我们不写的情况下编译器会默认生成6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重要,稍微了解一下即可。其次就是C++11以后还会增加两个默认成员函数,移动构造和移动赋值,这个我们后面再讲解。默认成员函数很重要,也比较复杂。六种:构造函数、析构函数、拷贝构造函数、拷贝赋值重载、普通对象和const对象取地址重载。初始化和清理构造函数主要完成初始化工作。析构函数主要完成清理工作拷贝复制。
2025-03-22 22:29:05
1286
15
原创 【前端】Visual Studio Code安装配置教程:下载、汉化、常用组件、基本操作
在使用其他方法预览时步骤繁琐,比如手动保存后切换到浏览器刷新页面,这时,使用该插件就便利很多。当使用“View In Browser”进行预览后,又将程序修改了,这时在使用预览,浏览器会仍旧停留在上一个内容,需要刷新页面才可以显示新内容。Auto Rename Tag 插件是一个高效的前端开发工具,主要用于:自动同步修改 HTML/XML/JSX 标签的开闭标签,避免因手动修改导致标签不匹配的问题。找到左侧栏中的插件,点击进入搜索框,输入“Chinese”,点击install进行安装。
2025-03-22 07:30:00
2539
12
原创 【C++】类和对象(一)定义、访问限定符、实例化、对象大小、this指针
其中class为定义类的关键字,jyan为类的名字,{}中为类的主体。注意类定义结束时不能省略后面的分号。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。为了区分成员变量,一般习惯上成员变量会加一个特殊标识,如成员变量前面或者后面加_或者 m开头,注意C++中这个并不是强制的,只是一些惯例,具体看公司的要求。C++中struct也可以定义类。
2025-03-20 23:20:29
1007
7
原创 【前端】入门基础(二)格式化标签、img标签
img标签有多种属性,我们先来介绍其src属性。img标签必须搭配src来使用,src用来指定图片路径。绝对路径:从系统根目录(或网站域名)开始的完整路径,能唯一确定资源的位置。特点:1、以根目录符号(/)或协议(http://、https://)开头。2、与当前文件位置无关,路径固定不变。相对路径:以当前文件所在目录为起点,通过相对位置定位资源。特点:1、无根目录符号或协议开头。2、路径随当前文件位置变化而动态计算。
2025-03-18 00:13:09
1004
1
原创 【前端】入门基础(一)html标签
前端指的是用户在使用网站或应用程序时直接看到和与之交互的部分,也称为“客户端”。它负责将数据以视觉化、交互化的方式呈现给用户,并处理用户的输入行为(如点击、滑动、输入等)。简单来说,前端就是用户眼前的一切。HTML(结构层):定义页面的骨架和内容,如标题、段落、按钮、图片等。CSS(样式层):控制页面的外观,包括颜色、字体、布局、动画等。JavaScript(行为层):实现动态交互,例如点击按钮弹出提示、加载数据、验证表单等。
2025-03-17 11:11:24
1014
原创 【C++】入门基础(二)引用、const引用、内联函数inline、nullptr
C++11中引入nullptr,nullptr是一个特殊的关键字,nullptr是一种特殊类型的字面量,它可以转换成任意其他类型的指针类型。上图中,a、b原本的值为2(其中b为a的引用),当执行a++ 时,a、b的值均加1,变为3;引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。C++中指针和引用就像两个性格迴异的亲兄弟,在实践中他们相辅相成,功能有重叠性,但是各有自己的特点,互相不可替代。现在令ra为a的别名,权限被放大。
2025-03-15 16:43:54
740
原创 vmware中所有虚拟机都ping不通时解决方案
一个虚拟机ping不通可能是网关配置问题,但我的网关配置也都没问题,而且我的所有虚拟机都ping不通。如下,我的子网IP变为了:192.168.131.0,而原本的是192.168.58.0。进入 编辑->虚拟网络编辑器 ,选择NAT模式,点击还原默认设置。为了不影响虚拟机使用,将子网IP改回:修改之后,点击应用即可。(要先记住下面的原本的子网IP,之后在还原)还原成功后,上图中的子网IP可能会发生变化。
2024-11-28 20:43:41
906
原创 【Linux】监控系统Zabbix的安装与配置
zabbix-agent是zabbix的客户端程序,用来采集数据,将数据发送给zabbix server。被监听主机应安装zabbix-agent。使用root用户创建了一个名为zabbix的数据库,并设置数据库的字符编码格式为utf8。其中的zabbix分别为数据库名、用户名、用户密码,itcast为数据库密码。2、在服务机通过zabbix_get命令来获取客户机的操作系统名称。通过地址http://ip地址/zabbix/setup.php。创建了新用户为zabbix,密码设为了zabbix123。
2024-11-15 22:22:46
1566
1
原创 【Linux】Ansible集中化运维工具(详解)安装、常用模块、playbook脚本
在学习ansible模块的时候,都是使用命令在节点上执行任务,命令使用比较复杂,且每执行一次均要重复输入,为避免重复输入命令,ansible提供了playbook脚本。即要执行的任务的队列,关键字为tasks。handlers中的模块调用与任务列表中的任务不同,任务默认按定义顺序执行,而handlers只有被触发时才会执行。执行完毕后会在/root/.ssh下生成一对密钥,其中id_rsa为私钥,id_rsa.pub为公钥。注:hosts的值可以是主机或组,也可以是关键字all,全部节点。
2024-11-08 15:16:36
1268
原创 【Linux】centos7内核编译6.11.3版本及其所出现的问题解决方案(升级make、升级gcc)
报错信息为:当前make版本为3.82,要升级make版本在4.0之上。报错信息为:当前gcc版本为4.8.5,而gcc最低版本为5.1.0。在解压之后,会出现 linux-6.11.3 文件。先自己下载内核源码压缩包,不要解压。在linux-6.11.3文件下。点击键盘右键,选择save。选择刚刚编译的内核版本。
2024-10-27 17:29:44
657
原创 【LInux】Shell脚本编写基本语法
例,编写脚本jyan2.sh,读取输入的字符串,判断字符串为空,输出为空,若不为空,输出字符串。done之间的是循环体,循环的时候,会从读取列表中依次读取一个数赋给var,直到列表中的值被读取完。进行比较,若相匹配,执行语句,后跳转到esac结束。例,编写一个脚本jyan.sh,判断在当前目录下是否存在名为name.yaml的文件。编写完成之后,点击esc,之后输入 :wq,保存并退出。例,编写脚本jyan3.sh,读取学生成绩,判断级别。进入后,点击 i ,进入编辑模式,开始编写内容。
2024-10-21 17:14:46
896
原创 【Linux】Shell概念、命令、操作(重定向、管道、变量)
这时在用echo $SHELL查看,发现还是bash,这是因为sh是在bash之后启动的,是bash的子shell,echo $SHELL只能显示用户登录的shell,不能显示其子shell,这时,就要用ps命令。将/usr/share/hwdata/oui.txt中的内容,作为wc命令的输入,即统计/usr/share/hwdata/oui.txt文本中的行数。将add.sh中加入#!将文件1中的内容以覆盖的形式打印到文件2中,若想保留文件2的内容,可用>>,将文件1中的内容追加到文件2中。
2024-10-21 00:05:27
1409
1
原创 【Linux】Linux命令与操作详解(二)权限管理、存储管理(磁盘分区、格式化、挂载)、进程管理、yum软件包安装
上一篇博客讲解了Linux的用户管理和文件管理,本篇博客将继续讲解权限管理文件管理命令中的权限指的是用户对文件的权限根据用户与文件的关系,用户可被分为:文件或目录的拥有者、同组用户、其它组用户和全部用户。一般将权限相同的用户放在同一组。
2024-10-07 19:47:32
1381
原创 【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)
上一篇博客介绍了centos7与Finalshell的安装,本篇命令介绍也使用Finalshell连接。快捷键:alt+enter :Finalshell的进入/退出全屏。
2024-10-07 00:03:54
1261
原创 虚拟机centos_7 配置教程(镜像源、配置centos、静态ip地址、Finalshell远程操控使用)
有许多开源的镜像站,里面维护了许多镜像源,可以下载所需要的源。第七步:点击完成之后,需要等待几分钟,不要输入任何东西,直到以下界面出现。Minimal为最小版本,无图形化界面,安装包也比较小,相对下载速度较快。输入以上命令后会出现网卡信息,找到ens33网卡下的ip地址,并记下该ip地址。第三步:点击浏览,找到刚刚下载的镜像源 .iso压缩包,之后点击下一步。修改完成后,按esc键,输入 “:wq” ,按回车键,进行保存并退出。下载需要一段时间,耐心等待一会后,打开安装位置(或更换位置),
2024-09-17 17:43:27
3190
1
原创 【数据结构初阶】二叉树与堆(一)
一个树可分为根和子树(度>=0)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MR1fWQnt-1722609222678)(https://i-blog.csdnimg.cn/direct/aa877a42de814202a6967bb7f5cdd85c.png)]
2024-08-02 22:48:23
991
2
原创 【数据结构初阶】详解:实现循环队列、用栈实现队列、用队列实现栈
如果popst内的数据为空,就将pushst内的数据导入popst中,此时从popst中按栈的顺序出数据时,所出顺序即为队列的出数据顺序。我们开始就说过,循环队列的数据储存的数量是固定的,为了方便讲解,我们这里设队列可储存4个数据。将不为空的队列中的队尾数据之前的所有数据导入为空的队列中,而原队列中只剩下要删除的元素。与队列的区别:循环队列的空间大小是固定的,且队尾连接队头形成循环。已经入了4个数据了,想要再入数据就要先出数据,把空间空出来。入的数据与出的数据的顺序相同,符合队列先进先出的逻辑。
2024-08-02 09:58:01
1059
1
原创 【数据结构初阶】详解 环形链表:链表的带环问题(判断是否带环、环形链表的入口点)
2、当N为奇数时,设环的周长为C,距离变化为-1时,即fast快slow一步,那么第二轮追击时二者间距为N=C-1,那么若C-1为偶数,第二轮可以追上;由上可得,本题一定要使用快慢指针的追击相遇,那么fast与slow有速度差,根据1.1的证明,我们还是使用速度为二倍关系比较容易。得到等式 2L=(x+1)*C-N,等式左边为偶数,当N为奇数, C-1为奇数即C为偶数时,若不带环,fast先到达尾节点,结束,此时fast一定在尾,slow在中间,不会相遇。1、当N为偶数时,N最终能够变化为0,一定能相遇。
2024-07-14 10:10:02
1020
1
原创 【C++初阶】与C相比,C++多出来简单又好用的语法(命名空间、输入输出、缺省参数、函数重载)
其中,namespace是关键字,后面接命名空间的名字,在来一对花括号即可。{}中为命名空间的成员。命名空间中可以定义变量、函数、类型等。如下图:命名空间的本质是定义一个域,根据不同的域里面的变量可以定义同名变量,来解决命名冲突。缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参,缺省参数分为全缺省和半缺省参数。(有些地方把缺省参数也叫默认参数)全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。C++⽀持在。
2024-07-08 17:27:22
1047
3
原创 【数据结构】经典链表题目详解集合(反转链表、相交链表、链表的中间节点、回文链表)
题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。故回文链表综合了 反转链表与链表的中间节点,了解了这两个题目方法后,我们只需写进行比较的代码。题目:给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。题目:给你单链表的头结点 head ,请你找出并返回链表的中间结点。题目:给你一个单链表的头节点 head ,请你判断该链表是否为。注:根据一个节点只能有一个next,相交链表一定是Y型的。
2024-07-07 21:27:52
763
1
原创 128:忆往昔,迎春来
我将学习与写博客给平衡下来是有一段适应时间的,起初,总是说学习完之后没时间写博客,只是偶尔感觉有必要写的时候才写,后来我意识到就是懒,一直待在自己的舒适圈,所以我现在是学习到一节知识点,就写一篇博客,我感觉复盘一下是非常有必要的。首先就是从正式的第一篇博客开始到现在,我的博客内容编写能力进步了很多,我现在回看第一篇技术博客,无论是文章内容,还是结构设置,其实能明显感觉到稚嫩,而现在所写的博客才算是正式的入门。我敲过的最长的程序,就是扫雷游戏了,其实也是跟着老师敲的,但敲出来之后是很有成就感的。
2024-04-01 23:41:14
515
2
原创 【C语言】联合体、枚举: 联合体与结构体区别,枚举的优点
比如,现实生活中,星期、月份、性别、颜色等都是可以一一列举的,这些数据的表示可以使用枚举。但编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用一块内存空间。联合体的所有成员共用同一块内存空间,那么联合体的大小至少是最大成员的大小。这些可能取值都是有值的,默认从0开始,依次递增1,也可以赋初始值。联合体是由一个或多个成员构成,这些成员可以是不同的类型。给联合体的一个成员赋值,其他成员的值也会跟着变化。如下面的例子:结构体的地址与成员地址相等。花括号里面的内容是枚举类型的可能取值,也叫。
2024-03-31 16:49:02
710
原创 【C语言】结构体详解 (二) 内存对齐、结构体传参
上一篇博客,写了结构体变量的创建、初始化和声明等内容,今天的这篇博客来带大家深入理解结构体的知识点。希望大家多多支持。正文1、结构体的内存对齐首先,抛一个问题:结构体的大小如何计算?要知道这个题的答案,首先要了解结构体内存对齐。1.1、对齐规则1、结构体的第一个成员对齐到和结构体变量起始位置偏移量为0的地址处2、其他成员变量要对齐到某一个数字(对齐数)的整数倍的地址处3、结构体总大小为最大对齐数的整数倍。
2024-03-29 16:47:14
1473
6
原创 【C语言】结构体详解(一)
先引入我们所熟悉的类型:char、short、int、long等等,这些是C语言提供的内置类型,但我们用单一的内置类型无法描述复杂的对象。结构的每个成员可以是不同类型的变量,如:标量、数组、指针、或其他结构体。为了解决这个问题,C语言增加了结构体这种自定义的数据类型,让程序员可以创造出合适的类型。如,描述一个学生,需要描述其名字、年龄、性别、学号等;顾名思义,顺序初始化是按照结构体成员的顺序进行的初始化。一个结构体中包含:结构体关键字、名字、成员、分号。p->name : 相当于 (*p).name。
2024-03-27 19:56:12
639
6
原创 【C语言】数据在内存中的存储
正文1、整数在内存中的存储整数的二进制表示方法有:原码、反码、补码。其中对有符号整数来说:这三种表示方法都分为符号位和数值位两部分。数值位的最高一位是符号位,用0表示‘正’,1表示‘负’。正数:原码、反码、补码均相等,三码合一。负数:原码:直接将数值转换为二进制,得到的就是原码反码:原码的符号位不变,其他位按位取反补码:反码+1整数在内存中以补码的形式储存。2、大小端字节序补码在存储时存在大小端问题2.1、什么是大小端?
2024-03-27 14:02:59
865
原创 【C语言】内存函数详解
图1: dest为高地址,在src前面,在对src、dest进行交换时,如果将src从 前-->后 的顺序(正序)进行交换时 ,换到3时源数据被覆盖,需要将src从 后-->前 的顺序(反序)进行交换。图2: dest为低地址,在src后面,在对src、dest进行交换时,将src从 前-->后 的顺序(正序)进行交换。memcpy与strcpy 是有相同点的,我们已知strcpy函数是用来对字符串进行拷贝的,且只能进行字符串的拷贝。所以是将12345,拷贝到34567的空间中,覆盖了原来的数据。
2024-03-23 00:31:00
1519
3
原创 【C语言】从将十进制数转换为七进制数到转换为k进制数
由此,为了联系数字逆序输出的知识,我们得到这样的一个思路:依次输出余数,得到一个反序的数,然后在将这个数倒序输出,就得到了该十进制数对应的七进制。将十进制数一直除以7,得到的余数倒着输出,即为其对应的七进制数。转换为k进制,只需要加一个输入值,并将所有的7改为k即可。数学中将十进制转换为七进制是如何求得呢?增加了一个变量n来控制其在哪一位上。
2024-03-21 19:09:29
991
1
原创 【C语言】库函数strstr的模拟实现
赋给指针begin的起始地址为 str1, 使得指针s1从begin开始移动,同时使得s2从str2开始移动,将s1指向的内容与s2指向的内容进行比较, 如果s1 不等于 s2, 则使begin++,s1从begin指向的位置开始向后移动,而s2返回起始位置(str2)开始移动,继续进行一一比较。即在字符串str1中查找字符串str2,并返回在str1中第一次遇到str2时的地址。说明:将两个字符串中的字符进行一一比较,找到要查找的字符串。有这种算法,在一个字符串中找到另一个字符串,代码更高效。
2024-03-20 17:22:34
840
1
原创 【C语言】库函数strcpy的模拟实现及优化
如上图:strcpy函数的 参数为 char*类型,返回类型为char*strcpy函数: 将源字符串拷贝到目标空间中。
2024-03-19 14:04:39
272
1
原创 【C语言】库函数strlen的模拟实现
根据Cplusplus官网说明,如上图:strlen函数的参数为char*类型,且*str不可改变;返回类型为size_t 无符号整型。因为s 指向的地址一直在改变, 需要将 其首字符的地址存到 ret 中。知道了strlen函数的功能,参数和返回类型,就可以进行模拟实现了。strlen函数: 计算字符串的长度。
2024-03-19 13:00:22
380
1
原创 【C语言】深入理解指针(二)
sizeof(数组名) : 当sizeof中单独放数组名时,其中的数组名代表的是整个数组的地址,计算整个数组的大小。p+1中存的是arr[1] 的地址, *(p+1)后得到arr[1] =2(数组第二个元素)如果直接打印出数组首元素的地址,或整个数组的地址时,打印出的结果是没有区别的。&数组名 :其中的数组名代表整个数组的地址,取出整个数组的地址。| 指针- 指针 | = 得到两个指针之间的元素个数。2.3 首元素地址与整个数组的地址的区别。&arr[0] —— 首元素的地址。1.1 指针+-整数。
2024-03-18 15:19:06
265
1
原创 【C语言】深入理解指针(一)
就像为了准确找到房间,我们将房间编号,那么,我们为了方便查找内存,我们把每个内存单元设置一个地址,这样,CPU就能快速找到一个内存空间。引子:来类比一下生活中的房间,为了方便管理,我们把一栋房子分成一个一个的小房间,而为了查找房间能够快速方便,我们把房间进行编号。在计算机中,我们把内存单元的编号叫做地址;内存是计算机中的一个硬件单元,计算机上的CPU处理数据时,数据从CPU上读取,处理后的数据也会放在内存中。正经讲法:把a的修改交给了p来操作,这样对a的修改就多了一种途径,写的代码就更加的灵活。
2024-01-29 07:00:00
1113
1
原创 斐波那契数(递归与非递归两种写法)
在计算第40个斐波那契数时,第三个斐波那契数被反复计算了39088169次 ,若递归层次越深,冗余计算就会越多。那么,来用我们最初的想法。这段代码是正确的,但当你输入一个相对较大的数,如 50,电脑要运行几分钟才能计算出结果,效率非常低,这个原因很简单,前两项为1固定,之后每一项依次为c,使用while循环来计算第n项斐波那契数, 计算量就大大减少了。我们已知,在斐波那契数列中,所求=前两项之和,如此,我们可以创建一个变量c,c=a+b。若根据上图,我们很容易被引导用递归的方法来写,进而写出这段代码。
2024-01-28 13:25:31
574
1
原创 求整数在内存中1的个数(三种方法)
00000000 00000000 00000000 00000001 (1补码)(这里%2后的值即为其二进制数,每当n%2=1,count++,即1的个数加一。若按位与之后的结果为1,则13的二进制的最后一位是1,进行count++每进行一次n&(n-1)后,n就少一个1,直到n=0时,循环结束。按位与之后结果为0,最后一位不是1,不进行count++.数据在打印时是原码,在内存中存放的是补码。循环%2,当n=n/2=0时循环结束)补码:1010(有2个1)以13为例:补码为1101。
2024-01-27 13:06:27
444
原创 不创建临时变量,实现两个数的交换(奇葩面试题)
但这段带码不合适:若a、b均很大且刚好未超出整型范围,但a+b超出了整型范围,就会导致数据丢失,不适用于全部的数。当然,除了题目的特殊要求,我们一般写这道题时还是用创建变量的方法来做,这种方法的效率更高,代码的可读性更强。实现两个数交换,我们最常用的应该就是创建第三个变量,进行交换。用异或(^)来求,上代码。
2024-01-26 22:09:54
190
1
原创 扫雷游戏(C语言版)
注意:因为在排查坐标周围雷的个数时,棋盘四周的坐标不足8个,因此在设置棋盘时为11*11棋盘,比原本的棋盘多一圈,并将这一圈设置为‘0’(非雷),便于排查。show棋盘:用来排查雷(输入要排查的坐标后,在show棋盘上显示该坐标周围雷的个数)mine棋盘:用来保存布置好的雷(棋盘中全为字符‘0’、‘1’,其中‘1’为雷)注:这里的x、y 的范围均在1~9,意为在11*11的棋盘中的9*9内布置雷。3、排查雷(输入要排查的坐标,后显示其周围雷的个数)2、布置雷(随机在棋盘上生成10个雷)
2024-01-26 10:50:05
402
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人