自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Qt 系统相关

事件非常类似信号槽,用户进行各种操作也会产生事件,程序员同样可以给事件关联上处理函数(处理的逻辑),当事件触发时就能执行到对应的代码。事件本身是操作系统提供的机制 Qt 也同样把操作系统事件机制进行了封装拿到了 Qt 中。但是由于事件对应的代码编写起来不是很方便,所以 Qt 对于事件机制又进行了进一步的封装就得到了信号槽。

2024-09-04 15:18:27 635

原创 模拟实现 C++ List

首先要创建一个节点,然后定义一个头结点。

2024-08-07 13:44:35 297

原创 AVL 树的插入

二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velski和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。AVL 树的结构要定义一个三叉链,因为它涉及的一个东西,插入一个结点要看它的平衡因子。

2024-08-07 13:43:55 278

原创 二叉搜索树

删除的节点如果有两个孩子,可以用替换法,可以是左子树最大的节点(左子树最右节点),也可以是右子树最小的节点(右子树最左节点)。替换节点赋值给删除节点后删除替换节点,替换节点要么没有孩子,要么只有一个孩子。有了这个特征以后它就有了一个特别大的价值就是搜索。

2024-08-07 13:43:03 251

原创 模拟实现 C++ vector

它里面有三个成员。

2024-08-07 13:40:32 181

原创 哈希开散列和闭散列

unordered_set 和 set 的功能是一样的,unordered_map 和 map 的功能是一样的,当然它们也有一些差异,unordered 它提供的是单向迭代器,它还有一些自己独有的接口。它们对比 set 和 map 的区别在于,map 和 set 遍历是有序的,unordered 是无序的, map 和 set 是双向迭代器,unordered 是单向。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(log N),搜索的效率取决于搜索过程中元素的比较次数。那如何寻找下一个空位置呢?

2024-08-07 13:38:40 279

原创 模拟实现 C++ string

为了跟库里面的进行区分,可以定义一个命名空间。string 的底层定义有好几种方式。在这我给一个 _str 的指针指向它那个动态开辟的空间,再给一个 _size 和 _capacity。

2024-06-19 15:06:55 755

原创 C++ string常用函数

STL 是 C++ 标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。

2024-06-14 14:35:03 654

原创 C++ 基础

C++ 基本兼容 C 的语法。C++ 又增加了一些自己的语法,比如说引用、函数重载这些...

2024-05-29 21:25:32 765

原创 顺序表&链表

顺序表就是数组,顺序表是用一段连续的物理空间去依次存储数据,它相比数组有个要求它的数据必须是从第一个位置开始连续存储的。链表的本质就是去针对顺序表的劣势去设计的,它可以按需申请空间,并且头部或中间的插入删除也不需要挪动数据,在物理存储上是非连续的,逻辑结构上是连续的。一般用它是用来单独存储数据。在它的任意位置插入删除都是 O(1) ,它几乎克服了顺序表所有的缺点。但它并不能完全替代顺序表,它真正的缺陷在于它不支持随机访问以及缓存利用率。其实链表的本质跟顺序表是相辅相成的。

2024-05-17 15:07:05 691

原创 map 和 set

set 的本质是个 key 的模型(就是确认在不在)构造一个 int 类型的 set,可以用 insert 一个个插入数据来初始化set s;//定义//插入也可以用这个列表或者迭代器的区间来初始化//迭代器区间用迭代器进行遍历 ,也可以用范围 forwhile (it!

2024-04-07 00:08:48 805

原创 C++ 多态

多态的第一个条件是虚函数,virtual 这个关键字在虚继承那边也用过,虽然它们用了同一个关键字,但是这两个关键字之间没有关系,那边是在解决数据冗余和二义性,这边是要实现多态。只有成员函数才能加 virtual ,加了这个 virtual 之后这个函数就叫做虚函数。在虚函数后面写上 = 0,则这个函数为纯虚函数,包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象,派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象,纯虚函数抽象类是间接在这个地方强制你去重写。

2023-05-17 15:01:38 34

原创 C++ 继承

首先,继承的特点是什么呢?实际当中我们会遇到一些问题,比如做个简单的比方,我们要实现一个简单的学校人员管理系统,要设计很多角色,其中基础的角色有学生,老师,后勤,假设学生他有名字,电话,编号,地址,那老师和后勤呢他们也有这些东西,但他们也有属于他们自己独有的信息,比如学生可能还有宿舍号,专业,班级,老师可能还有职称,院系,后勤可能还有职能,正常情况下,我们定义这几个类的时候这里面会有很多重复基本信息。

2023-04-12 14:04:24 49

原创 C/C++ 内存管理

C++内存管理

2022-08-27 14:33:41 547

原创 C++ 类和对象(下)

类和对象基础

2022-08-10 15:42:16 363

原创 Linux 权限

Linux权限

2022-08-03 14:27:53 2138

原创 C++ 类和对象(上)

初识类和对象

2022-07-29 16:56:51 583

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除