自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String类的实现(C++)

使用for循环可以确保插入的字符串中如果包含了空字符('\0'),也能正确地复制到字符串中。而strcpy()函数会在遇到空字符时停止复制,可能会导致插入的字符串不完整。因此,为了保证插入的字符串完整地复制到目标位置,需要使用for循环逐个字符复制。其余头文件内容都为一些函数声明与一些底层函数(浅显易懂),不做赘述。这里不建议用strcpy()直接拷贝。

2024-08-04 10:20:17 312

原创 C++初期知识点体会小结(其五)

假设我们要实现一个swap()交换函数,考虑到参数有int,double,char各种类型,我们需要借助函数的重载来实现此功能,这种方法固然可行,但难免会出现以下问题:a. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数b. 代码的可维护性比较低,一个出错可能所有的重载均出错由此诞生了泛型编程编写与类型无关的通用代码,是代码复用的一种手段),而模板是泛型编程的基础。

2024-07-27 17:42:48 782

原创 C++初期知识点体会小结(其四)

1)初始化的变量要根据声明的先后顺序进行赋值,如后声明的就不能赋值给前声明的2)引用变量,const常量必须初始化。

2024-07-21 21:44:32 653

原创 日期类实现(类和对象的应用)

因为相对于“-”,无论哪种方式都要调用两次拷贝(开头创建tmp一次,返回tmp又一次),并无差异;但对“-=”,其自己实现时不调用任何拷贝,但要利用“-”来实现就会再次调用“-”运算里的两次拷贝,再加上一次自身的赋值,就会降低效率。因为我们已经先实现了“+=”,而加法类的主体逻辑是类似的,因此再“+”中我们可以直接用上tmp += day。以上是第一种写法,但问题来了,为什么不先实现“+”,再由它来赋值给“+=”呢?要实现日期类,首先要清楚平年或闰年、每月有几天(尤其是二月的天数)。

2024-07-15 22:02:17 395

原创 C++初期知识点体会小结(其三)

运算符重载是具有特名字的函数,他的名字是由operator和后面要定义的运算符共同构成(如operator+,operator=,operator>等等)同样具有返回类型,参数等。·重载运算符函数的参数个数和该运算符作用的运算对象数量⼀样多。几元运算符就要有几个参数,二元运算符的左侧运算对象传给第⼀个参数,右侧运算对象传给第二个参数。*如果⼀个重载运算符函数是成员函数,则它的第一个运算对象默认传给隐式的this指针,因此运算 符重载作为成员函数时,参数比运算对象少⼀个。

2024-07-14 20:43:25 316

原创 C++初期知识点体会小结(其二)

A.无返回值B.函数名与类名相同C.可以重载D.如果类中没有显式定义构造函数,则C++编译器会自动生成⼀个无参的默认构造函数,一旦用户显式定义编译器将不再生成E.默认构造不仅仅是编译器默认生成的那个称作默认构造,总的来说,不传实参就可以调用的构造就叫默认构造。

2024-07-12 19:07:08 132

原创 C++初期知识点体会小结(其一)

用inline修饰的函数叫做内联函数,编译时C++编译器会在调用的地方展开内联函数,这样调用内联 函数就需要建立栈帧了,就可以提高效率。在以后的学习中,如函数、类、变量的名称都将在全局作用域中大量出现,为避免导致冲突所以就会用namespace来将这些标识符的名称本地化。const引用也可以引用普通对象,因为对象的访 问权限在引用过程中可以缩小,但是不能放大。2)性质:namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量。C++中域有函数局部域,全局域,命名空间域,类域;

2024-07-09 21:31:23 352

原创 插入排序与希尔排序

如果你要学希尔排序,那就一定要先学会直接插入排序。

2024-06-07 16:31:10 410

原创 常见排序的稳定性与复杂度分析

要判断一种算法的稳定与否,就是看其相等元素的相对位置是否发生改变。所以如希尔排序,选择排序,堆排序,快速排序(不稳定)这些涉及移换位置的往往很难控制稳定性。而冒泡,插入以及归并排序(稳定)这些只发生相邻元素交换,或者干脆不交换,确保了相同元素的相对位置不发生交换。

2024-06-07 09:51:35 301

原创 归并排序的递归与非递归实现

2.下面来讲归并的具体思想:其实就是将一个数组不断二分细化,直到分为两两一组再分别进行比较并返回给上一级,接着开辟一个新数组用来暂时储存这些排序好的数字,最后用memcpy将临时数组(tmp)中排序好的数组拷贝到原数组。再细分,第一个数组中就会得到mid=2,即出现【2,3】这个小区间,但接着算下去你会发现【2.3】无法再分,所以会陷入死循环。end1,begin2越界归为通一类,这二者越界即代表第二个数组没有需要访问的数字,直接break即可。//类似于分为左右树,但要注意递归插入的位置。

2024-06-06 20:49:02 511

原创 堆与二叉树

2024-05-27 21:23:20 98

原创 设计循环队列(加*为难点)

int* a;int head;int tail;//指向尾节点的下一个节点int k;//队列长度。

2024-05-13 21:36:11 527

原创 C语言编译与连接过程

这种链接方式生成的可执行文件不包含库文件的代码和数据,而只是包含了指向库文件的引用。因此,动态链接生成的可执行文件通常比静态链接的文件小很多。但是,动态链接需要依赖外部库文件的存在,如果库文件缺失或版本不匹配,程序可能无法正常运行。这些目标文件之间可能存在相互依赖的关系,例如一个目标文件可能调用了另一个目标文件中的函数。链接器的任务就是将这些目标文件以及所需的库文件合并成一个可执行文件,并解决它们之间的依赖关系。汇编器将汇编语言代码中的助记符替换为对应的机器码,并生成目标文件(.o文件或.obj文件)。

2024-04-06 21:38:25 375 1

原创 C语言文件

在C语言中,文件是通过文件指针来操作的。文件指针是一个指向文件的指针,它存储了文件的相关信息,如文件的路径、打开模式等。关闭文件后,文件指针fp将不再指向有效的文件,再次使用它会导致错误。因此,通常建议在关闭文件后将文件指针设置为NULL,以防止误用。如果文件已存在,则写入的数据会被追加到文件末尾。如果文件已存在,则写入的数据会被追加到文件末尾。其中,filename是文件的名称(包括路径),mode是打开文件的模式。当以写入或追加模式打开文件时,如果文件已存在且不希望被覆盖或清空,应谨慎使用。

2024-04-06 21:36:30 427 1

原创 关于结构体

如果嵌套了结构体的情况,嵌套的结构体成员对⻬到⾃⼰的成员中最⼤对⻬数的整数倍处,结构 体的整体⼤⼩就是所有最⼤对⻬数(含嵌套结构体中成员的对⻬数)的整数倍。struct Stu s = { " 张三 ", 20, " 男 ", "20230818001" };*结构体总⼤⼩为最⼤对⻬数(结构体中每个成员变量都有⼀个对⻬数,所有对⻬数中最⼤的)的 整数倍。*Linux中gcc没有默认对⻬数,对⻬数就是成员⾃⾝的⼤小。*对 ⻬数=编译器默认的⼀个对⻬数与该成员变量⼤⼩的较⼩值。

2024-03-24 11:49:27 228 1

原创 浮点数在内存中的储存

printf("*pFloat 的值为: %f\n",*pFloat);printf("*pFloat 的值为: %f\n",*pFloat);}————————可尝试此代码来比较浮点数与整数储存的差别。printf("num 的值为: %d\n",n);printf("n 的值为: %d\n",n);

2024-03-24 11:13:11 119 1

原创 内存操作函数

1.memcpy————从源文件复制num个字节的数据到指定目的地(遇到'\0' 不会停止)2.memmove————当src文件和dest文件出现空间重叠时使用,效果与上者相同。4.memcmp————比较从ptr1和ptr2指针指向的位置开始,向后的num个字节。3.memset————用来设置内存,将内存中的值以字节为单位设置成想要的内容。

2024-03-24 10:59:42 260 1

原创 指针的简介

由于通过地址能直接找到所需的内存单元,因此指针提供了一种高效且直接的方式来访问和操作内存中的数据。然而,使用指针时需要格外小心,因为错误的指针操作可能导致程序崩溃、数据损坏或其他不可预测的行为。但这里的“指针”指的是用来指示时间的时针、分针等,与计算机科学中的指针概念完全不同。指针是一个重要的计算机科学概念,尤其在编程中。它代表了内存中的一个地址,通过这个地址,程序可以直接访问和操作存储在该地址的数据。总的来说,指针是计算机科学中的一个基础且重要的概念,它使得程序能够更高效地访问和操作内存中的数据。

2024-03-17 20:07:43 283

原创 扫雷游戏代码以及感悟(文末有代码)

GetMineCount()实现了查找出一个非雷单位后显示出周围八个的总雷数——因为上文中非雷单位我们定义为零,而雷定义为一,运用ACII码值的知识即可得到此式(或使用for函数也可计算)使用头文件的目的是让代码分区明了,两个源文件一个为游戏内容主体,另一个是游戏的执行与实践。2.0 首先要实现的是扫雷游戏的模板(建议在定义新函数时不要用一些无意义的字母,而是花点力气用英文来命名,以方便他人及自己的查阅———在写长代码时尤为重要)如图,game.h(头文件)的作用主要是定义函数以便于源文件的使用。

2023-12-11 20:19:55 71

原创 C语言的分支和循环

相应的,做好题来趁热打铁再好不过————猜数字游戏。我推荐每一个学过分支和循环的小白一定要自己完整的写一套这个代码,可以借鉴写法,但不要照抄,相信你可以把分支和循环应用的淋漓尽致。而常见的循环语句为for,while,do while,go into等。动手就行了,多做题,日复一日哪怕是个傻子也能学到东西。最后,分享一下我写的猜数字游戏(内含惩罚“关机”)。如if,else,switch等称作分支语句。这些语句大家应该有过一定了解,这里便不做赘述。下面我来讲解一下这种语句的学习方法,多练!

2023-12-01 22:53:46 51

原创 源:第一篇博客

3+3+3+7=16一周的学习时间。开始学编程,目标大厂。按部就班,跟着老师走。

2023-11-18 20:03:19 22

空空如也

空空如也

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

TA关注的人

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