- 博客(28)
- 收藏
- 关注
原创 【MySQL】数据库——数据类型
存储方式:char类型是固定长度的字符串,它会在存储时将所有的字符都占满指定的长度,多余的空间用空格填充。而varchar类型是可变长度的字符串,它只会占用实际存储的字符所需的空间,不会填充额外的空格。查询效率:由于char类型的数据长度是固定的,所以在查询时效率较高,因为每个字符的位置是固定的。总的来说,如果存储的字符串长度是固定的,且查询效率和索引使用是优先考虑的,可以选择char类型。存储空间:由于char类型是固定长度的,它会为每个字符分配指定的存储空间,无论实际存储的字符数是多少。
2023-10-23 23:57:56
234
1
原创 【C++】C++之多态
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口 类)。抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。
2023-05-31 23:19:01
135
1
原创 【C++】C++中的继承
下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。1. 很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设 计出菱形继承。否则在复杂度及性能上都有问题。2. 多继承可以认为是C++的缺陷之一,很多后来的语言都没有多继承,如Java。3. 继承和组合public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。组合是一种has-a的关系。
2023-05-29 18:18:12
183
原创 【Linux】Linux进程状态和进程优先级
进程(Process)是指计算机中已运行的程序,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。我们平时在编写好一个C/C++的可执行程序时,经过编译链接后形成二进制可执行程序,而程序的本质就是文件,
2023-05-24 23:06:42
442
原创 【Linux】计算机操作系统和软硬件体系结构
操作系统对所有软硬件资源进行管理,同时为用户提供访问软硬件资源的系统调用接口,由操作系统来完成资源的各种访问;另一方面,用户为了降低成本,使用各种用户操作接口来访问软硬件资源,用户操作接口的底层再来调用系统调用接口。所以说,操作系统将硬件、软件和用户有机联系了起来。
2023-05-20 22:33:19
450
2
原创 【Linux】Linux代码编译与调试工具 -- gcc/g++/gdb的使用
我们所以使用库中函数的代码(printf (.....)),其实我们只是使用了该函数的调用,没有对应实现,只有在链接的时候才和我们的代码关联起来。Linux 一般都会自动安装C语言动态库,因为Linux下的大多数指令以及我们默认使用 gcc 编译得到的可执行程序都是进行动态链接,依赖C动态库的;它的优点是形成的可执行程序小,缺点是受到动态库变动 (删除、升级等) 的影响。如上汇编过程形成的test.o文件存的是我们看不懂的二进制数字,我们可以使用od指令打开它(默认是以八进制打开)
2023-05-17 00:14:47
1486
1
原创 【C++】模板进阶详解
由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。【优点】模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生。增强了代码的灵活性。【缺陷】模板会导致代码膨胀问题,也会导致编译时间变长。出现模板编译错误时,错误信息非常凌乱,不易定位错误。
2023-05-15 22:50:00
94
原创 【C++】priority_queue和仿函数
priority_queue文档介绍优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。标准容器类vector和deque满足这些需求。
2023-05-08 21:27:30
299
1
原创 【C++】容器适配器 — stack和queue
stack文档介绍stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定 的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器, 默认情况下使用deque。
2023-05-07 23:47:17
243
1
原创 【C++】list 迭代器详解和模拟实现
通过对比我们可以看到,list sort 的效率要远低于 vector sort,甚至可以说,使用list sort 还不如把 list 的数据拷贝到vector中进行排序,然后使用vector sort排序后,再将数据拷贝到 list 中快。这里对 list 和 vector 分别在vs和Linux的编译器下插入相同的元素进行排序对比,通过比较来深刻了解这两种容器在排序性能上的差别,可以帮助我们更直观地感受两种容器的区别,以便更好的使用它们。1. vector排序和 list 排序对比。
2023-05-04 22:07:08
1593
原创 【C++】string类的使用和模拟实现
目录1.为什么学习string类?1.1 C语言中的字符串2. 标准库中的string类2.1 string类(了解)2.2 string类的常用接口说明1.string类对象的常见构造2.string类对象的迭代器Iterators:3. string类对象的容量操作3.string类的扩容机制4. string类对象的访问及遍历操作5. string类对象的修改操作6. string类非成员函数7. vs和g++下string结构的说明8.小试牛刀3.浅拷贝和深拷贝3.1浅拷贝3.2深拷贝4.strin
2023-04-29 22:49:54
281
原创 【C++】类与对象详解(下篇)
初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟 一个放在括号中的初始值或表达式。
2022-11-16 17:23:34
348
2
原创 【C语言】实现电脑必备小游戏—扫雷(完整版)
一、游戏介绍《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。二、游戏步骤1. 程序开始执行是玩家首先选择是否开始游戏。选 1开始游戏;选0则退出游戏。2. 显示棋盘后玩家开始进行选择,输出1则开始排雷;输入2则可以标记自己认为是雷的位置;输出3则可以取消自己标记的位置。3. 当所以的雷排查出后游戏胜利。三、游戏功能介绍(1)初始化雷盘初始化雷盘需要构建两
2022-05-18 22:30:16
1158
原创 【C语言】教你如何用代码实现三子棋小游戏
一、三子棋效果展示大致和大家所知的三子棋相似,玩家和电脑下棋,直到一方获胜,或者平局,游戏结束。二、三子棋基本需求分析(1)三子棋需要一个3*3的九宫格棋盘:我们可以创建一个二维数组实现。(2)玩家下棋:将玩家所下的位置赋值给二维数组,用*号代表玩家的棋子。(3)电脑下棋:将电脑所下的位置赋值给二维数组,用#号代表电脑的棋子。(4)判断输赢:如其中一方满足获胜条件,则该方赢,若棋盘下满还未分出胜负,则按平局处理。三、三子棋代码实现前期准备文件:(博主用vs2019创建
2022-05-05 21:38:00
208
原创 转义字符及其作用
转义字符及其作用 转义字符 字符值 输出结果 \ ' 一个单撇号(') 输出单撇号字符 ' \" 一个双撇号(") 输出双撇号字符 " \? 一个问号( ?) 输出问号字符? \\ 一个反斜线(\) 输出反斜线字符 \ \a 警告(alert) 产生声音或视觉信号 \b 退格(backspace) 将光标当前位置后退一个位置 \f 换页(form feed) 将...
2022-05-02 12:28:08
791
原创 初识计算机程序和C语言函数
1. 什么是计算机程序?所谓计算机程序,就是一组计算机能识别和执行的指令,每一条指令使计算机执行特定的操作。只要让计算机执行这些程序,计算机就会“自动的”执行各条指令,有条不紊地进行特定的操作。总之,计算机的一切操作都是有程序控制的,离开程序,计算机将一事无成。所以计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。2. 最简单的C语言3. C语言函数的结构 (1) 函数首部。 即函数的第一行,包括函数名、函数类型、函数属性、函数参数(...
2022-05-01 09:52:59
310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人