- 博客(51)
- 收藏
- 关注
原创 【数据库】MySQL聚合统计
主要介绍了SQL中聚合函数的一些简单用法和使用场景,和分组聚合统计的用法,其实未来我们只要能处理好单表的CURD,之后所有的SQL场景,我们都可以用统一的方式进行。
2024-09-08 15:49:52 1933
原创 【数据库】MySQL表的Updata(更新)和Delete(删除)操作
update操作和Delete操作的一些简单使用案例,还有delete和truncate的区别
2024-09-07 18:07:11 1601
原创 【数据库】MySQL表的基本查询
通过以上的案例,我们最后需要知道的是我们需要有数据才能展示,先查后排。只有数据准备好了,才能展示,limit的本质功能就是显示,所以limit的使用会更靠后。
2024-09-05 21:15:23 1204
原创 【数据库】MySQL表的约束
首先表的约束是什么?表的约束就是未来在插入数据库中的表中的数据是符合预期的。当我们在向表中插入数据时,如果我们插入的数据和表中的类型不相符,那么数据库就会约束我们提醒我们插入正确的数据。约束的最终目标就是保存数据的完整正确性和符合要求。为了更好的使用表我们需要更多的约束条件。
2024-08-26 17:56:20 1417
原创 【数据库】MySQL表的操作
field表示列名datatype表示列的类型charatcer set 表示字符集,如果没有指定字符集,就以所在数据库的字符集为准collate 表示校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准首先先创建一个数据库,并且在右方可以查看监视我们创建的数据库user_db接下来使用上方给出的语句创建一个表。
2024-05-30 18:44:04 959
原创 【数据结构】AVL树和旋转
本章要分享的内容是AVL树,所有代码会放在最后,会涉及到树的左旋,右旋,右左双旋,和平衡因子的更新。在之前我们接触过二叉树和二叉搜索树二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率便会降低。
2023-12-16 20:45:02 286 6
原创 【操作系统】Linux操作系统中命令行参数与环境变量
本篇要分享的内容关于Linux新操作系统中命令行参数。命令行参数本质上还是作为以后的环境变量的基础来学习的,所以在接触更高难度的内容之前先学习基础。以下为本篇目录。
2023-11-26 23:14:24 437 12
原创 【C++】复杂的多继承及其缺陷(菱形继承)
单继承的特点是一个子类只有一个直接继承的父类,即使又多层继承关系,但是只有一个直接父类,都称作单继承。所以多继承的特点是一个子类有两个或以上的直接父类时称这个关系叫做多继承。使用多继承时没有错误的,他可以在一个类中结合多个类的特点,多继承的本身并没有错误,但是出错的往往是在一些使用场景下会有缺陷,如菱形继承
2023-11-10 00:55:48 490 8
原创 【C++】继承详解
首先封装、继承、多态是面向对象的三大特性,本篇先了解继承。继承(inheritance)机制是一个一个一个面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。
2023-11-08 17:28:22 251 8
原创 【操作系统】了解Linux操作系统中PCB进程管理模块与进程PID
进程简单理解进程就是可执行程序+内核数据结构(PCB);这里的PCB所指的就是process control block(进程控制模块),也可以称作为task_struct,也就是们运行中的程序所对应的各种信息都会被存放在PCB中。
2023-10-01 17:35:21 837 12
原创 【C++】SLT——Vector详解
官方的简介是vector是由一个动态增长数组实现的顺序容器,其实再简称一点就是顺序表。以下是vector的组件默认成员函数迭代器与容量相关的函数与访问数据相关的函数与修改容器数据相关的可以看到上面有我们在string中就接触过的一些函数,比如push_back,下标访问时的operator[],测量长度的size,等等所以这也是我们学习vector比较容易的原因,同时vector在设计上也基于string有了一些改进,在内部函数的设计方面也更加合理了一些;
2023-08-30 21:12:22 880 19
原创 【C++】string简单实用详解
STL是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。也就是说他是C++标准库的一个子集,也就是说从今往后我们需要用到数据结构的内容时,不需要再像C语言自己定义结构,使用起来会更加便捷。当然C++标准库中还有其他的组成部分,其中STL是最常使用的部分,所以我们需要学习它的使用。首先了解SLT的六大组件六大组件中最重要的就是算法和容器了,容器其实就可以理解为数据结构,包阔我们之前学的栈、队列、树等等都叫做容器,只是将数据结构换了叫法;
2023-08-24 14:38:58 515 8
原创 【C++】C++入门基础:引用详解
本篇继续分享关于C++入门的相关知识,有关命名空间、缺省参数和函数重载的部分欢迎阅读我的上一篇文章继续我们的学习。
2023-08-19 21:31:30 565 18
原创 【C++】C++入门基础详解(1)
本篇内容要分享的是C++的基础内容,C++的诞生简单的说就是为了填补C语言中的语法坑,同时对比C语言来说增添很多便捷的语法规则,使用起来比C语言便捷不少,但是学习难度也大大增强,不过难度是成线性增长,可以一步一步的深入学习。关于C++的历史本篇不过多分享,有兴趣的可以自行去了解,接下来就直接从代码开始。首先我们要庆贺的是我们使用VS创建文件时不用再创建.c文件了,可以直接创建.cpp文件。
2023-08-15 19:31:21 329 15
原创 【数据结构】排序:插入排序与希尔排序详解
本章开始就要分享一些常用的排序方法,我们的日常生活中很多地方都要使用排序,比如电商平台可以按照你的需求进行排序,或者是你想了解大学的综合排名时我们之前也学到过一些简单的排序比如冒泡排序,虽然他在时间复杂度上可以说是依托答辩,但是作为排序算法来讲还是非常有教学意义的,让更多的人可以了解到排序。那首先分享两种排序算法,简单了解一下排序;
2023-07-08 17:27:37 1080 23
原创 【数据结构】队列详解
队列的结构和栈完全相反,栈只能再栈顶进再从栈顶出,遵从后进先出(LIFO);而队列本篇要分享的内容是队列的解析和增删查改的使用。队列的结构和栈完全相反,栈只能再栈顶进再从栈顶出,遵从后进先出(LIFO);而队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,遵循的是先进先出,后进后出。入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为队头
2023-05-19 17:26:49 3469 27
原创 【数据结构】栈的详解
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
2023-05-18 00:26:17 2102 19
原创 【数据结构】链表:带头双向循环链表的增删查改
本篇要分享的内容是带头双向链表在刚开始接触链表的时候,我们所学仅仅所学的是单链表,相信大家用C语言学习单链表时也倍受二级指针的折磨。当然单链表只是链表结构内的一种,他的结构非常简单,但是理解并操作起来却非常困难;而我们今天要研究的是链表中结构最复杂,但是理解起来最简单的链表的结构。
2023-05-16 02:12:21 1165 27
原创 【数据结构】链表OJ:力扣141.环形链表、142.环形链表II
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)
2023-05-10 16:22:00 598 2
原创 【数据结构】链表详解
顺序表的空间是连续的,通过访问下标就可查找到数据, 而单链表的空间是一块一块的不是连续的,所以我们无法通过下标来访问这些数据,所以我们依旧可以通过指针来访问他们的信息。在链表的下一个空间中存放上一个空间的指针,就像穿串一样将他们全都串联起来;这样就可以访问一个空间的同时也能知道下一个空间的地址。
2023-04-25 19:06:19 870 5
原创 【数据结构】顺序表的增删查改操作
上一篇文章为大家介绍了对顺序表的简单的使用,本篇文章继续完善对顺序表增删查改的操作。上一篇写到了顺序表的,本篇将从继续完善;以下为本篇目录,方便阅读。
2023-04-18 23:49:19 1129 7
原创 【数据结构】顺序表详解
本章要分享到内容是数据结构线性表的内容,那么学习他的主要内容就是对数据的增删查改的操作。比如我们看到的所显示出来的群成员的列表这样所展示出来的数据。同时呢我们也可以对里面的成员内容进行操作右击一个成员你就可以看到一些可以操作的内容,比如移除群聊;当然我们如果想邀请别人加入群聊的话也是对这个表里的内容进行操作,同样的输入关键字也可以找到这个表中对应的内容所以这就是数据在我们以后的业务中涉及到的一些增删查改的问题。
2023-04-15 21:28:28 648 6
原创 【数据结构】空间复杂度
本章内容要分享的是空间复杂度,空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度 ,空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。
2023-04-12 19:52:59 792 11
原创 【数据结构】时间复杂度详解
首先我们要知道学习数据结构时都会讨论到算法,数据结构中的问题多数都有算法解决,两者是你中有我,我中有你的关系,所以在数据结构中的学习中算法也是必不可少的。为方便阅读,以下为本片目录。
2023-04-11 00:13:21 1567 7
原创 【C语言】预处理详解:#define的各种使用方法
define定义标识符的用法非常简单语法:name可以由自己来命名,尽量取一些有意义的名字stuff是名字所对应的内容#define还可以用来定义关键字#define reg register //为 register这个关键字,创建一个简短的名字我们如果觉得register太长了,使用不方便,我们还可以创一个简单的名字reg上面这个reg的意思就是register可以看到 reg被替换成了register。
2023-04-05 19:54:31 23814 10
原创 【C语言】文件操作详细讲解
我的回答是磁盘上的文件都是文件。就是说打开你的电脑,你会看到电脑上有着C盘,D盘,或者还有的人买了容量更大的硬盘, 这些硬盘中所有的东西都可以被成为文件但是在程序设计中,我们一般谈的文件有两种:程序文件,数据文件。接下来分享一些读写函数我们可以看到每个函数都有不同针对的对象,有针对字符的,有针对文本行的,有针对格式化的和针对二进制的,我们一个一个来讲解。
2023-03-30 00:46:25 587 12
原创 【C语言】动态内存函数的详细讲解2:常见的动态内存使用的错误
上一篇文章为大家详细讲解了动态内存函数的简单的使用,并用图例为大家演示了空间的问题。本篇内容也为大家总结几点动态内存使用时经常出现的错误,希望能对大家有所帮助。
2023-03-27 22:02:24 262 13
原创 【C语言】动态内存管理详细讲解
先在官方的网站上大概了解一下它的内容malloc本质上是一个函数,使用时要包含的头文件,返回类型是人任意类型的指针,参数是 size_t类型,也就是无符号整形, 他的作用是在内存中申请数个字节的内存块,返回一个指针指向这个内存块的起始位置。上代码简单使用一下这个函数int main()return 0;那么这段代码什么意思呢?假设我们要开辟二十个字节的空间,我们就在malloc后面的括号中输入想要开辟的空间,注意单位是字节;
2023-03-26 13:50:46 542 15
原创 【C语言】自定义类型的详细讲解2(枚举类型、联合体类型)
char类型的对齐数是1,int类型的对齐数是4,默认对齐数必须是最大对齐数的整数倍,所以5个char类型的数据占据5个字节的空间(从零开始到四占了五个),四是int的倍数,刚好可以存放剩下int类型的字节空间,总共占据了8个空间。通过图例的意思就是这四个字节的空间是变量u的,变量u中,i也同样占了四个空间,而i的首地址与u的首地址相同,在一个位置上;我们从他们的空间大小来入手。注意:#define的宏定义是没有规定类型的,而枚举是自带类型检查的,是枚举类型,并且用枚举的方式也便于我们调试,调试如下。
2023-03-24 02:06:59 637 11
原创 【C语言】自定义类型详细讲解(结构体、位段的简单到深入)
非常简单,直接上代码举例子int age;其实无非就是两种方式一种是直接定义在结构体后面的全局变量,一种是定义在main函数中的局部变量;我们创建完变量后就要初始化,就像我们定义别的类型,如int类型时要对其进行初始化,要给他赋予一个初始值那结构体的初始化与我们所学的数组是相同struct Sint a;char c;}s1;
2023-03-21 23:26:26 817 23
原创 【C语言】常见的内存函数使用(memcpy、memmove、memcmp以及memset的详细讲解)
我们在拷贝内容的时候同时也会改变arr1中的内容,所以就等于一边改变arr1数组中的内容一边将其拷贝到arr1数组中,并且只拷贝20个字节的内容,所以改变后的arr1的内容是1,2,1,2,3,4,5,6,7,8,我们将前20个字节的内容拷贝到了arr+2后面的内容,所以就成为了如上图所示的数组内容。void*类型的指针dest指向arr2数组中的首元素的地址,第二个参数void*类型的指针src指向arr1数组中的首元素的地址,第三个参数是整型参数意为传递20个字节;那就是要从前向后拷贝;
2023-03-17 02:37:32 1962 9
原创 【C语言】常见的字符串使用以及易错使用2(strcmp、strncat、strncmp、strstr的使用)
自定义函数模拟时要注意函数的返回值和参数return 0;arr1++;arr2++;return 1;思路也非常简单进入函数直接将两个字符串的首元素进行判断,如果相等,就一致往后给他的地址+1;并且继续进行判断,直到不相等为止;
2023-03-15 01:34:55 796 7
原创 【C语言】常见字符串函数及其易错使用(strlen、strcpy、strcat的简单与深入研究)
计数器方法我们当然要定义一个变量count当作计数器,从代码中我们不难看出str是char*类型的指针,指向arr数组中的第一个元素的地址,str是char*类型的指针,指向arr数组中的第一个元素的地址,基础的数组传参要记清楚,往下走,在while循环中对str指针进行解应用,当这个指针指向的地址中的元素不为'\0'的时候,那就给count++;我们还是拿上面的代码举例啊。和上面的一样,函数的返回类型是char*,要把后面的内容加到前面去,所以后面的内容不用改变,要用const修饰。
2023-03-11 23:15:50 763 7
原创 数据的储存(2)(c语言)
那么5.5用二进制表达就是101.1 ,移动小数点变成科学计数法成为1.011,再根据上述所说的V的表达形式,就可以写为5.5=(-1)^0* 1.011 *2^2,其中(-1)^0表示这是一个正数,2^2表示将小数点向后移动两位,因为V=(-1)^S * M * 2^E,所以S=0,M=1.011,E=2,所以计算机在存储数据的时候只要将S、M、E存入计算机中即可达到储存浮点数的效果;n是值是9,是整形类型的数据,我们再以整形类型的数据输出,也就是%d输出,我们发现输出是9;
2023-03-05 21:11:05 529 10
原创 数据的储存(1)(c语言)
并且最后输出的时候将其用%u(打印无符号数)将其打印出来,结果就会出现很大的数,所以由此可见,计算机在储存和处理数据时是转化成二进制的形式将其处理的。讲道理,当最后输出的是0的时候,再次进入循环,i--就变成了-1;但是i是一个无符号整型,所以i的取值是>=0的,所以我们还是要看这时i的二进制的原,反,补内容;首先我们要知道我们所使用的电脑中的数据都是以二进制的形式存储在我们的电脑里的,所以要了解数据的储存就得了解二进制,他是计算机数据处理的基础;我们在计算机中存储的数据分为原码,反码,补码。
2023-03-01 20:37:41 114 8
原创 关于qsort库函数的使用和bubble_sort(冒泡排序)的对比 及对qsort函数详解
使用void*类型的指针也是因为qosrt可以任意类型的数据,所以要比较的两个元素就不能确定,得使用void*类型的指针 ,如下。如果我们要比较结构体数据的大小, 以上两种方法都不可行,所以我们要指定一个标准来判断两个元素的大小 ,只要将这两个元素怎么比的大小告诉qsort函数,那么qsoer就可以帮你排出顺序;qsort中的参数依次为要排序的目标数组,待排序的元素个数,其中一个元素的大小(单位是字节),两个数据比大小的函数;如果我们要比较两个数的大小,使用>和
2023-02-28 22:09:27 227 6
原创 C语言三字棋小游戏
玩家下棋和电脑下棋后,会把棋盘放满,所以我们还需要判断输赢的函数,玩家落子后判断输赢,电脑落子后判断输赢,这样游戏就完整起来;这就是测试游戏的逻辑,当菜单打印出来后,需要用scanf输入一个数来选择是否玩游戏,选择1则开始游戏,选择0则退出游戏,输入1和0以外的数则输入错误,需要重新输入,这样就完成了简单的逻辑;电脑下棋和人类下棋同样,我们不妨自定义函数名为ComputerMove,当然,同样是在board这个数组中下棋,也要明确下棋的行和列,所以我们传参时和玩家下棋是相似的,只是落子时选的坐标是。
2023-01-31 20:24:35 142 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人