- 博客(42)
- 收藏
- 关注
原创 Mysql(索引与事务)
在早些年代会出现,A给B转了钱而B却并未收到,因此引入了事务中的回滚(指的是通过检查若没有执行成功就回退回去,比如A给B转了钱而B却并未收到时,那么就会触发回滚把A转出金额再返回给A)来解决这一问题。事务是把多个SQL打包成为一个整体,要么都执行,要么做到看起来都不执行的样子。原子性:保证一系列操作都能正确执行或者恢复如初一致性:事务执行之前之后,数据都不能太离谱持久性:事务做出的修改,都是在硬盘上持久保存的。服务器重启数据依然存在隔离性:解决数据库处理并非事务中出现的问题。
2024-10-02 00:03:05
906
原创 模板初阶(C++)
函数模板template是模板函数的关键字有的也会写成class,(但是两者在后面会有明显的区别后面会结合具体案例进行介绍这里不进行深入介绍),typename 指的是类型名称 ,这里的T是取自type的简写,T可以置换成其他字母也是可以的。模板参数的类型是根据传入的参数进行自动识别类型,在遇见传入参数类型不同,需要为不同的类型进行分别做标记。 函数模板使用案例:1.调用相同类型运行结果 2.调用不同类型 这里是模板参数类型不同的情况,a和c的类型不同,这里有两种解决办法。1.用户自身进行转换。2
2024-09-20 18:50:08
1001
原创 内存管理(C++版)
operator new是对malloc的封装而operator delete是对free_dbg函数的封装(这里可以理解为是对free函数的封装)。,指针存的是常量字符串首元素的地址,这里*pChar3就是在常量里面了,ptr1开辟的是指向堆区的空间,因此*ptr指向的是堆区。C++中的new不仅具可以开辟空间,还会进行函数的构造,delete相对与free不仅可以释放空间还会调用析构函数。C++中使用的有new后面只有跟着申请的类型,在初始化的时候new 类型后面要加上(初始化的值),
2024-09-19 17:18:05
1195
1
原创 类和对象补充
C++⽀持内置类型隐式类型转换为类类型对象,需要有相关内置类型为参数的构造函数。如我们学过的指针(虽然存放的是地址,也是有编号)可以和数据类型进行相互转换。A类只有一个单参数的构造函数,因此该构造函数是支持隐式类型转换的,A aa1 = 1;本质上就是隐式类型转换,首先在隐式转换过程中会产生一个临时的中间变量,用1去调用构造函数,得到一个A类型的临时中间变量,然后再用这个A类型的中间变量去调用拷贝构造,最终完成aa1的创建。
2024-09-16 22:34:11
1055
3
原创 数据库的约束
数据库约束数据库对数据的合法性进行校验检查,避免数据库中被插入,修改一些非法的数据。数据库约束类型not null - 指示某列不能存储 null值下图就是具体展示,未进行约束时可以进行填入null,约束之后就不能进行填入,会自动进行报错,此外就算对已有数据进行修改成null也是不行的,同样会报错。注意一点,不能再原表上就行更改约束,要重建一个表并进行约束。不能进行修改为约束规定的情况unique - 保证某列的每行必须有唯一的值下图案列就可以看出unique就是和它的
2024-09-13 11:25:17
863
1
原创 MySQL表操作(中)
模糊匹配需要通配符进行操作,%:代指任意一个任意字符,%号根据所在的位置具有不同的用法,在首部就是查找首部含这个字的,中间就是查找含这个字的,尾部就是结尾含这个字的。条件查询是通过取出表中的数据,与表中的条件进行判断,符合条件就进行记录,然后存下,不符合就直接pass掉。例子如下图,数学得分相同的并未进行去重,必须名字和得分都相同才会实现去重的效果。排序的方式是具有优先级的,从左到右,也就是说当在进行排序的时候先进行第一列表的排序按照指定的升序/降序,当第一个列表出现相同就进行第二个列表的排列顺序。
2024-09-11 17:35:30
690
2
原创 C++类和对象(下)
正确的解决方案是重载成全局函数,全局函数时就没有默认的*this,就可以根据顺序进行设置形参,这里也存在一个问题,重载写在了全局,函数内部是无法调用私有成员变量,因此这里引入了。简单来说,友员类就是比如说你有一个好兄弟卖了一个黑神话的游戏你没有,但是你想玩,这会你好兄弟就说我们是好兄弟我的就是你的,拿去玩吧。+这种情况是获得当前的值而加等是获得加后的值,两者的区别也是体现*this指针改变不改变,+的时候并不改变,因此要先用拷贝构造,构造一个和*this一样的对象,而后者就是直接在this上进行修改。
2024-09-10 22:58:20
700
1
原创 MySQL表操作
这里有个注意点:商品的价格我这里用了int而不是decimal,因为虽然decimal精度高,但是运算缓慢,此外价格可以化为以分为单位这样就可以解决不精准这个问题了。边查找,边进行计算。insert into 表名(列名,列名....) values (值,值.....);insert into 表名 values(值,值...),(值,值...)...;insert into 表名 values(值,值,年 月 日 时:分:秒);insert into 表名 values(值,值,now());
2024-09-09 22:35:57
1091
原创 MySQL数据库(初始上)
MySQL是一个客户端——服务器结构的程序,MySQL的服务器是真正的本体,负责保存和管理数据,数据存储在硬盘上。数据库指的是逻辑上数据的集合,一个MySQL服务器上可以有很多表,把有关连的连到一起就构成了一个数据集合,这个集合就称为数据库。
2024-09-08 22:54:21
751
原创 Java基础之方法与数组
public static 方法返回值 方法名称([参数类型 形参 ...]){方法体代码;[return 返回值];//动态初始化数据类型[] 数组名称 = new 数据类型 [] { 初始化数据 };// 静态初始化数据类型[] 数组名称 = { 初始化数据 };数据类型[ ][ ] 数组名称 = new 数据类型 [行数][列数] { 初始化数据 };Java中二维数组的定义和C语言中的定义是有区别,定以方式有如下三种,
2024-08-25 18:17:50
848
原创 JAVA基础知识总结(上)(初识Java)
以上就是本次Java的总结内容,主要涉及Java的基础知识,并与C语言进行了对比,不全的内容因为和C的较为相似,所以未进行补充。
2024-08-22 14:29:44
1143
1
原创 排序(归并排序,非比较排序)
稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的 相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,⽽在排序后的序列中,r[i]仍在r[j]之 前,则称这种排序算法是稳定的;否则称为不稳定的。数据结构结构初阶的排序基本上总结完毕了,这里我学了冒泡,插入,选择,快排,希尔,堆,归并,计数排序,这几种排序在时间复杂度,空间复杂度以及稳定性上各有各的优点。下面我们用一张图进行总结。
2024-08-20 17:50:28
1111
2
原创 选择排序(直接选择排序与堆排序的比较)
1. 直接选择排序思考⾮常好理解,但是效率不是很好。实际中很少使用,思路是先进行遍历找到元最小的元素,然后与第一个进行交换 2. 时间复杂度:O()3. 空间复杂度:O(1)上述代码的时间复杂度为:O(),但是不是最完美的所以我们进行优化一下,但是优化后时间复杂度还是O()。 这时就可以看出选择排序和冒泡排序的差别,冒泡排序优化后时间复杂度会进行改变但是选择排序就并不会改变。堆排序分为大根堆和小根堆两种方法,这两种方法主要区别的是升序还是降序。升序大根堆因为我们知道大根堆中最大位于堆顶的,经过
2024-08-18 19:08:35
1000
2
原创 插入排序(直接排序和希尔排序的比较)
我们学过较多的排序,排序分为:插入排序,选择排序,交换排序,归并排序这几种,这些排序在时间复杂度和空间复杂度上存在着一些差异,下面我们会对插入排序进行详细的讲解。排序的分类插入排序和希尔排序在时间复杂度和便利性方面都有一定的差异。插入排序适用于小规模数据或者已经基本有序的数据,而希尔排序适用于中等规模数据,尤其是部分有序的数据。在实际应用中,可以根据具体的需求和数据特点选择合适的排序算法。
2024-08-17 18:44:24
1251
2
原创 二叉树的经典例题(干货满满附源码)
上述例题均是利用了递归进行二叉树问题的解决,虽然思路不是很难但是自己上手还是有一点问题,值的我们自己进行上手练习一下。
2024-08-16 15:37:16
400
原创 二叉树的实现用链表(符原码)
链式二叉树在计算机科学中有广泛的应用,例如在搜索算法、排序算法、表达式求值、图算法等领域。链式二叉树使用递归是非常方便的,但是我们不要忘记递归一定要有限制条件,不然递归就说无限制循环了。
2024-08-14 16:08:08
432
1
原创 栈和队列应用实例(力扣oj练习,赋oj原码)
为了更好的掌握与练习数据结构的栈与队列,下面三道经典例题,可以帮我们更好的掌握,区分栈和队列的特性及应用。补充下面代码均是不完整(原码只包括oj中方法的调用,队列和栈方法的原码,如有需要可查看栈与队列文章)。这三个案列极好的练习了前段时间所学的栈与队列知识的点,上述三个案例虽然思路不是很难,但是细节较多,需要认真的练习。
2024-08-11 22:20:04
490
原创 C++基础语法(下)
以上就是c++基础知识的下半部分,其中重要的就是引用,引用的使用极大的方便我们,后面的内容就是一些其他语法知识,c++的语法知识较为零散。需要认真掌握。
2024-08-07 19:13:01
827
2
原创 栈与队列知识点总结
栈适用于后进先出方式处理数据,并且允许在任何时候只能访问或修改位于其顶端项。队列适用于先进先出方式处理数据,并且允许在任何时候只能访问或修改排在其前端各项。虽然它们有不同之处,但都是非常重要且应用广泛。
2024-08-06 08:32:45
382
原创 C++基础知识总结(上)
学习C++需要掌握基本语法、面向对象编程、标准库等知识,同时需要不断练习编写代码和参与实际项目,我们要进行大量的练习和知识点语法的记忆。
2024-08-05 23:17:59
626
原创 双向链表知识点(附源代码)
单链表适合简单的单向遍历操作,内存消耗小;而双链表适合需要双向遍历或者频繁涉及节点前驱访问的场景,但是相应地需要更多的内存空间来存储额外的指针。
2024-08-02 17:35:12
441
原创 树与二叉树的介绍与应用
树是⼀种⾮线性的数据结构,它是由 n(n>=0) 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。每棵⼦树的根结点有且只有⼀个前驱,可以有0 个或多个后继。因此,树是递归定义的(后面会体验到树递归的暴力)。子树是不相交的,相交就是图了,⼀棵N个结点的树有N-1条边。树的图像错误案例。
2024-07-26 09:40:38
830
1
原创 快慢指针的应用(题目来源力扣oj训练)
快慢指针在数据结构上的用法还是非常的灵活,并且效率还是非常的高效,这些知识还是比较重要的,后续还有会继续更新,最后期待各位大佬的指正。
2024-07-16 18:52:05
519
1
原创 力扣单链表例题分析
以上是所学的快慢指针,链表反转,这几种方法的掌握对我们后续知识的学习也是很有帮助的。后面我还会对快慢指针进行深一步的探索,期待大家的指正。
2024-07-15 16:44:29
470
3
原创 动态内存管理
动态内存分配其实还是很考察对指针指向的理解,其次这个知识点对数据结构的学习有很大的影响。希望大家能重视起来,最后希望各位大佬能进行指正,共同进步。
2024-07-11 23:04:16
745
2
原创 顺序表练习
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组来存储。那么数组和顺序表的区别主要是顺序表是对数组的封装,虽然顺序表的底层是数组,但是提供了很多现成的方法如数据的增删查改等功能。顺序表是线性表的一种,顺序表的物理结构(指的是数据在内存上的存储方式)不一定是连续的,逻辑结构一定连续。数据结构和C语言的结构体,内存的动态存储,指针的练习较为密切。数据结构的算法理解问题不大但是当上手练习时难度还是不小,所以想练好数据结构还是要多敲多练。由于代码较多所以此处不进行展示了。
2024-07-10 11:57:53
335
2
原创 指针运算经典案例(干货十足)
指针的运算一定要清楚,此时指针的指向,另外还要搞清楚在二维数组中的取地址和不去地址数组名的区别。指针还是很重要的,需要多加练习,才能更加的娴熟。
2024-07-05 00:07:54
410
1
原创 指针与数组
CPU访问内存中的某个字节空间,必须知道这个字节空间在内存的什么位置,⽽因为内存中字节很多,所以需要给内存进⾏编址 ,有了这个内存单元的编 号,CPU就可以快速找到⼀个内存空间。在计算机中我们把内存单元的编号成为地址,这个地址可以理解为指针。以上是最近这段时间的学习,主要涉及到指针的初识,指针与数组的联系,数组指针,指针数组之间的区别以及应用,指针是C语言的一个重要的内容因此一定要多加的练习与领悟。
2024-07-02 00:23:43
899
原创 C语言中操作符的讲解(重点部分)
操作符的种类较多,在程序中,优先级和结合性尤其要注意。操作符虽然在程序中不是很起眼,但是具有很多出乎意料的用法,因此我们要了解这其中的奥秘,并能较好的运用。最后欢迎大家在评论区进行指正。
2024-06-30 01:02:47
576
原创 C语言中函数知识点汇总
函数在C语言种也是一个非常有用的部分,函数实现的多文件,提高了团队的协作,并且代码的结构化提高了代码的可读性,以上是我个人对函数的总结,总结可能有一些不全面,希望各位友友可以积极指出。期待我们一同进步。
2024-06-23 10:57:30
680
原创 最大公约数最小公倍数(四种求法)
通过这四个案例,可以较好回忆知识点,这四个案例主要应用函数,涉及函数调用和递归,递归在函数中扮演了非常重要的角色。希望各位大佬看到有问题可以积极指正,一起进步。
2024-01-21 16:54:43
781
3
原创 函数与数组结合(扫雷游戏的实现超详细)
经过一段时间的学习我对函数和数组也有一定的了解,我也得出了一个观点,在学习的过程中重要的是我们对编程逻辑思维的运用和部分知识的回顾,如在这个游戏的实现我了解到了多文件的使用函数的调用,rand函数知识点的回顾。
2024-01-18 21:51:33
1476
3
原创 数组应用之求数组素数的两种方法
在基础语言的学习过程,一定要灵活运用算法的逻辑思维,融会贯通,其次要自己多进行练习,不能只学习理论知识,只有自己真正的“下水”,才能取得更大的进步。
2024-01-11 22:33:08
811
2
原创 魔方阵中奇数魔方阵的实现
魔方方阵有,“奇魔方阵”、“偶魔方阵”、“单偶魔方阵”。//当所求位置已经有数字时=0)col=precol;prerow=row;precol=col;当所占位置已经有数字时,要注意一点,它的下一行位置是相对于前一个位置的移动,所以此时一定要对前一个数的位置进行标记。看已知的图表时不要慌张,找到它们之间的规律并发现之间的规律,如杨辉三角,斐波拉契等问题,要慢慢理清思路。最后欢迎大佬在评论区对其余两种“魔方阵”进行解析。
2024-01-07 21:37:02
576
2
原创 数组基础知识与二分查找的应用
类型 数组名[常量表达式];数组应用要多进行练习,尤其要牢记数组开辟的是一个连续的空间,这一点在指针应用较为广泛,具体的介绍下一篇文章在进行具体讲述。
2024-01-05 22:12:10
990
1
原创 斐波拉契数的输出
在斐波拉契函数中我们运用有返回值的传参,我们会发现一个规律,前两项的值一般是一样的,所以我们可以把前两项直接让他返回到一个准确的值。对于后面的项,比如fun(4)=fun(3)+fun(2),此时fun(3),fun(2)会继续往回走,直到遇见准确返回值,fun(3)=fun(2)+fun(1).我们会观察到斐波拉契的规律就是1 1 2 3 5.....就是类似于前两项进行相加得出第三项。所以fun(4)=fun(1)+fun(2)+fun(2)。同样遇见其他倒推就可以。
2024-01-02 10:45:36
476
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人