- 博客(37)
- 收藏
- 关注
原创 Mysql数据库基本操作
实例:我们首先创建了一个字符集为utf8,校验集为utf8_general_ci的d1,使用修改命令改为字符集为gbk,查看修改后的结果。2.数据库校验集 --支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。现在我们知道了数据库有不同的字符集和校验集,我们就能根据实际的需要来创建数据库。使用命令查看数据库是否是utf8,查看数据库目录下的db.opt文件。·数据库名字的反引号` `,是为了防止使用的数据库名字刚好是关键字。修改数据库,主要是修改数据库的字符集和校验规则。
2025-04-23 11:52:50
197
原创 Linux进程概念
存储器指的是内存·cpu只能对内存进行读写,不能访问外设·外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。总结一下,一句话,所有设备都只能直接和内存打交道。
2025-03-27 10:56:11
244
原创 数据库基础
数据库是一个有组织的集合,用于存储和管理数据的系统。它是一个软件系统,被设计用来存储、检索和管理数据,并提供数据的快速访问和处理。数据库可以被看作是一种特殊的,但与传统的文件系统不同的是:它能够更加高效的存储和管理大量结构化数据。
2025-02-21 11:41:24
649
原创 Linux相关开发工具
在Linux下安装软件, 一个通常的办法是下载程序的源代码, 并进行编译, 得到可执行程序。这样太麻烦, 于是有人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系。
2025-01-04 13:03:33
1027
原创 Linux基础指令(下)
ls [选项][目录或文件]:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。如:ls –d 指定目录-i 输出文件的 i 节点的索引信息。如 ls –ai 指定文件-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件-l 列出文件的详细信息。-n 用数字的 UID,GID 代替名称。(介绍 UID, GID)
2025-01-01 22:36:31
863
原创 二叉搜索树
二叉搜索树又称,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树。
2024-11-04 22:45:06
425
原创 C++中的多态
多态都是配合继承来使用,这是因为继承是实现多态的前提多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。1. 必须通过基类的指针或者引用调用虚函数2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类 不能实例化出对象。
2024-11-03 23:05:32
638
原创 C++模板进阶
例如上述这个代码,T为类型形参,N为非类型形参比如我们想创建两个不同大小的栈,一个为10,一个为100,这时我们就能使用非类型模板参数实现。
2024-10-26 22:13:51
853
原创 stack和queue
队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端 提取元素。优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的deque(双端队列):是一种双开口的"连续"空间的数据结构,虽然被叫做双端队列,但本质上并不是队列,队列是一端进一端出的deque并不是真正连续的空间,而是由一段段连续的小空间拼接而成的双端队列底层是一段假象的连续空间,实际是分段连续的,为了维护其“整体连续”以及随机访问的假象,落在了deque的迭代器身上。
2024-10-24 11:23:45
855
原创 C++模板初阶
/顺序表public:vector(),_size(0){}~vector()//在类中声明,在类外面定义private:T* _a;// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表//空间不够需要增容if (_a)_a = tmp;_size++;int main()//类模板实例化需要跟在类模板名字后面跟<>,然后将实例化的类型放在<>中即可++i)return 0;
2024-09-13 09:23:19
337
原创 C++内存管理
在申请自定义类型空间时,new会调用构造函数,delete会调用析构函数,malloc和free不会调用new的原理1. 调用operator new函数申请空间2.在申请的空间上执行构造函数,完成对象的构造delete的原理1. 在空间上执行析构函数,完成对象中资源的清理工作2. 调用operator delete函数释放对象的空间new T[N]的原理1. 调用operator new[]函数,在operator new[]中实际调用operator new函数完成N个对象空间的申 请。
2024-09-09 15:54:11
999
原创 C++类和对象(下篇)
初始化列表:以一个,接着是一个以,每个后面跟一个放在括号中的初始值或表达式。注意:1. 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)自定义类型成员(该类没有默认构造函数)3.成员变量在类中就是其在,与其在初始化列表中的先后次序无关。
2024-09-03 18:59:27
320
原创 C++类和对象(中篇)
如果一个类中什么成员都没有,简称为。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。
2024-08-31 18:39:41
798
原创 C++入门(上篇)
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名 空间的成员。//1. 普通的命名空间namespace N1 // N1为命名空间的名称// 命名空间中的内容,既可以定义变量,也可以定义函数int a;//2. 命名空间可以嵌套int a;int b;int c;int d;//3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
2024-08-23 19:08:33
317
原创 数据结构:树和二叉树
一个二叉树,如果每一个层的结点数达到最大值,则这个二叉树则为满二叉树,也就是说,如果一个二叉树的层数为k,且结点的总数是(2^k)-1,则它就是满二叉树。一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。:若一个节点含有子节点,则这个节点称为其子节点的父节点。如上图:A是B的父节点。:以某节点为根的子树中任一节点都称为该节点的子孙。:一个节点含有的子树的根节点称为该节点的子节点。:从根开始定义起,根为第1层,根的子节点为第2层,以此类推。
2024-05-21 21:25:20
733
原创 栈和队列(C)
栈:一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除元素操作的一端称为栈顶,另一端称为栈底。遵守先进后出的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据也在栈顶。
2024-05-19 22:19:10
129
原创 顺序表和链表
线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表,链表,栈,队列,字符串。
2024-05-16 20:15:22
315
原创 时间复杂度和空间复杂度
在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比,算法中的基本操作的执行次数,为算法的时间复杂度。注:上述所指函数,是数学当中的函数时间复杂度的函数式:F(N)=N*N+2*N+10N越大,后两项对结果的影响越小。
2024-04-28 18:29:53
684
原创 程序环境和预处理
_FILE__进行编译的源文件__LINE__文件当前的行号__DATE__文件被编译的日期__TIME__文件被编译的时间__STDC__如果编译器遵循ANSI C其值为1,否则未定义注:__是由两个下划线"_"构成int main()int i = 0;for (i = 0;i < 10;#define 定义标识符后面不需要加分号。
2024-04-22 21:55:24
390
原创 C语言的文件操作
在文件读取过程中,不能用feof函数的返回值直接用来判断文件是否结束。而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。FILE* stdin 标准输入流(键盘)FILE* stdout 标准输出流(屏幕)FILE* stderr 标准错误流(屏幕)fread判断返回值是否小于实际读取的个数。根据文件指针的位置和偏移量来定位文件指针。返回文件指针相对于起始位置的偏移量。2.二进制文件的读取结束判断。让文件指针回到文件起始位置。
2024-04-20 18:19:19
367
原创 C语言自定义类型
自定义类型包括:结构体,联合体,枚举结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。例如形容一个学生结构体标签如果省略,就变成匿名结构体,只能使用一次结构体的自引用结构体初始化结构体内存对齐规则1.第一个成员在与结构体变量偏移量为0的地址处2.其他成员变量要对齐到某个数(对齐数)的整数倍地址处。对齐数=编译器默认对齐数与该成员大小的较小值. VS编译器默认为83.结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。
2024-04-15 21:55:19
313
原创 字符串和字符串函数
1.strlen求字符串长度,直到字符串中出现‘\0'停止函数返回值为size_t(无符号整型)用函数模拟实现strlen2.strcpy(将源数据放到目标地中)使用strcpy源数据必须以'\0'结束目标空间足够大,能放下源数据目标空间必须可变模拟实现strcpy函数3.strcat(字符串追加)源数据含有'\0',目标空间足够大模拟实现strcat4.strcmp(比较两个字符串)比较字符串当中字母的ASII码值模拟实现strcmp5.长度受限制的字符串函数strncat。
2024-04-11 12:51:58
264
原创 C语言指针
内存-->内存的单元(1byte)-->编号-->地址-->指针,所以指针本质上是一个地址。int(*pfarr[4])(int, int) pfarr数组的每个元素类型是int(*)(int, int);(2).指针-指针(得到的是指针和指针之间的元素个数)(1)指针类型决定了+1/-1的操作,跳过几个字节。数组名通常情况下表示的是数组首元素的地址,两个例外。(1)sizeof(数组名) 表示整个数组。本质上是数组,用来存放指针(地址)(3).指针的关系运算。
2024-04-06 14:02:54
249
原创 冒泡排序和快速排序
void* 是无具体类型的指针,可以接受任意类型的指针,void* 是无具体类型的指针,所以无法进行解引用操作,也不能+-整数。size_t size, //待排序的数据元素的大小(单位是字节)size_t num, //待排序数据的个数。void qsort(void* base, //你要排序数据的起始位置。e1,e2是要比较的两个数据的地址。快速排序(qsort) C语言自带,可以排序任何类型的数据。
2024-04-05 22:18:40
167
原创 用C语言代码写1+1/2+1/3....+1/100的值
int main()int i = 0;for(i = 1;i <= 100;i++)return 0;
2024-02-05 10:53:07
564
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人