自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++函数模板

在编译器编译阶段,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供调用:比如当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然后产生一份专门处理都变了类型的代码,对于字符类型也是如此。//在这里类模板有点类似typedef来进行一键修改,但是在这里却无法实现多层的创建不同类型的栈(意思就是int和double这两种类型的T无法同时存在)无法同时实现int或者double这两种类型的T类型变量的存在,但是使用类的模板却可以。

2026-07-31 18:37:20 204

原创 c++内存管理

如果申请的是内置类型的空间,new和malloc,delete和free基本类似,不同的地方是 new/delete申请和释放的是单个元素的空间,new[]和delete申请的是连续的空间,而且new在申请空间失败的时候会抛异常 ,malloc会返回NULL.调用new相当于调用着一个套着一个马甲的malloc。如果malloc申请空间成功就直接返回,否则执行用户提供的空间不足的应对措施,如果用户提供该措施,就继续申请,否则就抛异常,operator delete 最终是通过free来释放空间的。

2026-07-31 12:11:29 187

原创 类和对象介绍

class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面的分号是不能省略的,类体中内容成为类的成员:类中的变量称为类的属性或成员变量;类中的函数成为类的方法或者成员函数。另外为了区分成员变量,一般习惯上成员变量会加上一个特殊的标识,如成员变量前面或者后面加_或者m开头(具体看特殊情况,不作硬性要求)。c++中struct也可以定义类,c++兼容c中struct的用法,同时struct升级成了类,明显的变化是struct中可以定义函数,一般情况下class来定义类较为推荐。

2026-07-28 22:18:57 205

原创 c++入门基础

在这里两者的类型是不一样的,如果说用const int类型起别名,引用的是在类型转换过程中的临时拷贝,另外在这里临时对象的声明周期会随着引用的生命周期增长。另外,此处引用的别名拷贝的时类型转换过程中产生的无法访问到的临时变量的别名,在这里临时变量以及发生了类型的强制类型的转换。在数据结构实现这一块,就是用引用来代替指针的作用,并且在这不需要使用assert()断言,因为引用就是对于对象的引用,在通过引用对目标数据进行起别名的操作后,那么我对于别名的操作实际上就可以在我原本的对象进行改变。

2026-07-24 14:15:44 214

原创 双链表的逻辑以及结构梳理0

另外在这里双链表是可以从后向前遍历,也可以从前向后遍历,但是每一个节点的成员变量,不仅有存储的数据date还有的是,指向前一个节点的指针,和指向后一个节点的指针。在这里删除目标节点,传参目标节点的地址,然后断言pos不能为空然后将pos节点的下一个节点的前驱指针指向目标节点的前一个节点,然后再使得目标节点的前驱指针指向目标节点的下一个节点,使得目标节点的前后节点链接,然后再去释放目标节点的空间,并使其赋空以避免野指针,在这里调用该接口后也需要将传递的实参来手动销毁,如果传递二级指针就不需要了。

2026-07-19 20:25:09 160

原创 单链表逻辑结构梳理

然后进行while循环来找到目标节点的前一个节点,然后让该节点的成员变量next等于插入的新的节点的地址,然后让该新节点的next保存目标节点的地址,然后最后通过next,串联起来,使得三个节点实现了链接。在这里先assert断言避免目标节点的地址为空,然后创建一个新的节点,使其成员变量next与目标节点的next相等,表示为新的节点代替目标节点来指向下一个节点,然后再将新的节点与目标节点相连,pos->next=newnode,实现原目标节点与新节点的相连,与目标节点的下一个节点的相连。

2026-07-14 11:47:08 205

原创 数据结构中的顺序表

其实顺序表与链表其中一点不同的是,顺序表是使用数组实现的,将数据存储在数组中,保证了数据在物理以及逻辑上的连续,而链表则是在一个结构体中内置date成员存储数据,然后再设置一个结构体类型的指针变量来存储下一个节点的地址,从而实现了节点与节点之间的相链接,可以通过节点来实现逻辑上的连续性,那么在这种形式下,即使不像数组那样存储数据的空间是连续的,也依然可以实现逻辑上的连续,形式以及运用更加的灵活。断言地址是否为空,以及pos的值在固定的范围内,不可超越有效数组元素边界,然后进行空间检查,来判断是否需要扩容。

2026-07-12 12:52:53 167

原创 c语言实现扫雷游戏

但是在这里rand函数的使用是为随机的,伪随机的数字不是真正的随机数而是通过某种算法得到的随机数,是对一个叫做“种子”的基准值进行运算生成的随机数。为此我们想要得到随机值,就要使得这个“种子”是变化的,在这里c语言中提供一个函数叫做srand,用来初始化随机数的生成器(种子)的,srand的原型为 void srand (unsigned int seed)。

2026-04-02 11:54:20 321

原创 c语言分支和循环的理解

在标记2处则用到了break语句,其所在处是为了判断目标数i是否存在处本身与1以外的其他因数,在这里还要额外解释的是,prime_is在这里担当着标记的作用,如果有因数即i % n == 0判断实现则prime_is=0来给对应的目标数标上了非素数的标记。在介绍完while循环与for循环两种循环语句后,另一种则是do while循环,在这里前两者是先判断再进行循环,而最后一种循环与之不同的是要求先进入循环然后执行循环语句后再进行while后的判断语句,表达式为真则进行下一次循环,若表达式为假则跳出循环;

2026-03-05 19:07:55 247

空空如也

空空如也

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

TA关注的人

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