- 博客(15)
- 收藏
- 关注
原创 C++:了解string类的重要函数及模拟实现
对于常用的一些string的函数,掌握上面的足以应对遇到的绝大部分情况了,并且我们可以看出封装了一个这样的字符串类后,我们以后再使用字符串就可以更加简洁更加方便了。后面会写一篇文章来进行对一些重要函数的模拟实现来帮助大家更加深入的了解这些函数的底层封装。
2025-04-08 11:24:26
395
原创 一篇文章带你了解Linux的权限
在Linux中,有两种登录用户,分别为超级用户(root)和普通用户,看名字就可以知道超级用户肯定更牛逼一些,事实也确是如此,超级用户的权限是要远高于普通用户的,并且还要注意超级用户的命令提示符是“#”,普通用户的命令提示符是“$”既然是不同的用户,那么二者自然是可以互相切换的,而切换的命令有两种:su和su -看似只差了一个-,实际内部中有很大区别su:使用方法:su username,这里username是我们想要切换的用户名称,如果我们不加用户名称,那么系统会默认切换到root用户。
2025-03-23 11:41:42
767
原创 C++:初步认识模板的作用
模板是C++中一个非常重要的内容,也是C++的一个重要转折,它可以帮助我们简化很多在C语言中很麻烦的问题,而本文章通过讲解函数模板和类模板带大家先初步认识一下模板的作用,后续会有对模板的进阶使用进行讲解。
2025-03-17 18:10:32
878
原创 C++:进行动态管理的new和delete
如果申请的是内置类型的空间,new和malloc,delete和free基本类似,不同的地方是:new/delete申请和释放的是单个元素的空间,new[]和delete[]申请的是连续空间,而且new在申请空间失败时会抛异常,malloc会返回NULL。new和delete在开空间和销毁空间时实际会去通过调用operator new和operator delete这两个系统提供的全局函数来实现的开空间和销毁空间。我们明白了new和delete的大致用法,接下来我们再了解一下他们的底层是如何实现的吧。
2025-03-16 14:36:58
772
原创 C++:深入了解构造函数中的初始化列表
假如我们在B类中声明了一个A类的自定义成员_aobj,编译器在执行B类时肯定会先去调用A类的构造函数给它初始化,但A类中的没有默认构造函数,声明又无法传值,那么此时_aobj就无法进行初始化,所以这时就可以在B中写一个初始化列表,将_aobj进行初始化。我们上面说了构造函数体内赋值不是初始化,也就是说不算是定义,其他类型因为没有这样的特性,在函数体内赋值还算是 ‘初始化’,但这种类型的成员哪怕想要体内赋值都没有办法,而根据初始化列表的特性,我们知道初始化列表中就是初始化,就是用来定义的。
2025-03-10 17:17:05
955
原创 C++:深入了解C++的六个默认成员函数
我们都知道一个类中如果没有任何成员,则叫做空类。那么空类中真的什么都没有吗?答案是否定的,当一个类中一个成员没有时,编译器会自动生成六个默认成员函数,它们不仅可以提高我们运行的效率,还可以增加代码的可读性,让我们来深入了解一下这六个成员函数吧。
2025-03-06 17:38:13
772
原创 并发与并行的区别
假如有两个CPU核心1、2和四个线程1、2、3、4,将线程1,2分给CPU1,将线程3,4分给CPU2,那么此时,线程1和线程2在CPU1上就是并发执行的,CPU2上同理;回到计算机中,一批柴相当于一个进程,一堆砖则相当于另一个进程,CPU则相当于做任务的人,在单核系统下,因为CPU在两个任务直接切换速度的足够快,快到人感知不出来,所以在宏观看,两个任务在同时进行,但并不是真正的并行;关于并发与并行的区别,曾经一直困扰着我,而关于并发与并行的概念很多,我搜索了很多类似的内容后,有所感悟,便写下这篇文章。
2025-02-10 18:25:48
172
原创 C++:对类和对象的初步认识
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。//成员函数return;top = 0;//...top++;free(a);top = 0;//成员变量。
2025-02-04 21:45:17
931
原创 C/C++中关于结构体中内存对齐的问题
vs中的默认对齐数是8,第二个成员变量是int i,它的大小是4字节,而默认值为8,所以对于i来说对齐数是4,4的整数倍位置中,地址4是满足的,所以第二个成员变量应从4开始;而对齐的内存访问仅需要一次访问。4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。
2025-02-03 17:02:16
565
原创 C++:入门
本文章主要讲的是在C++中用来弥补C语言中的不足之处以及对C语言的一些方面进行优化,和对后面知识的铺垫。//全局变量int main()return 0;由这串C语言代码及结果的报错可以看出,rand重复定义了。
2025-01-25 14:03:10
761
原创 MySQL:复合查询
上一篇文章了解了基本查询的知识点,但在实际应用中基本查询无法满足大部分的需求,而复合查询则可以在基本查询的基础上增加更多对于查询的应用。
2024-12-17 23:15:58
926
原创 MySQL:基本查询
select查询作为MySQL中极为重要的指令,在MySQL中占据着非常高的地位,本文会对select的基本用法进行一次梳理。为了好区分所以一般系统关键字用大写,但为了敲打方便,本文实例演示中都用小写。
2024-12-08 12:19:37
732
原创 MySQL:触发器中SIGNAL的使用
MySQL中的SIGNAL语句是用于在存储过程、触发器或事件中生成自定义错误信息或警告的一种机制。它允许开发者在数据库操作中返回具有特定错误号、SQLSTATE值或自定义文本消息的错误,从而简化错误处理过程。SIGNAL语句的主要用途是在存储过程、触发器和事件中生成自定义错误信息或警告。这有助于简化错误处理过程,使得开发者可以更灵活地控制错误信息的返回,而不需要依赖系统默认的错误处理机制12。自定义错误信息:可以返回具有特定错误号、SQLSTATE值或自定义文本消息的错误。简化错误处理。
2024-12-03 19:49:19
1126
原创 MySQL:索引的使用
为何使用索引?我用下面的一个例子来说明:在数据少的时候,或许没有办法直观地看出索引所体现的好处,但当数据很多时就可以清晰地看出,下面创建一个含800万条数据的EMP表由上图可以看出当数据很多时,查一条数据的时间是6秒,很显然,这样的速度太慢了当为这个表创建了一个索引后,在用同样的语句进行查询,速度变成了0.01秒,大幅度提升了查询的速度。
2024-11-24 23:43:56
1758
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人