
C++
文章平均质量分 86
A.A呐
拼搏百天,我要当无情的写博客机器
展开
-
【C++第二十章】红黑树
enum Color //定义颜色枚举,增加可读性RED,BLACK//一样的使用三叉链,方便旋转//左孩子//右孩子//父节点//这里使用的是KV模型Color _col;//颜色, _kv(kv), _col(RED) //默认设置为红色,如果默认为黑色,则每次插入必定违反性质4{}原创 2025-02-20 22:25:36 · 1509 阅读 · 0 评论 -
【C++第十九章】AVL树
在AVL树定义中,我们使用了三叉链,尽管多开了一个指针,但是大大减少了程序的复杂度,插入时可以快速找到父节点从而进行平衡因子判断、调整。template<classK,classV>//KV模型//左孩子//右孩子//父节点int_bf;//平衡因子,_kv(kv),_bf(0){}当以parent为根的子树不平衡,即parent平衡因子为2或者-2,需要分以下情况考虑:parent的平衡因子为2,则右子树高,设parent的右子树的根为SubR当SubR平衡因子为1时,执行。原创 2025-01-19 19:42:39 · 1162 阅读 · 0 评论 -
【C++第十八章】Map和Set
map和set讲解原创 2024-10-10 15:20:59 · 1074 阅读 · 0 评论 -
【C++第十七章】二叉搜索树
二叉搜索树原创 2024-10-06 12:45:46 · 732 阅读 · 0 评论 -
【C++第十六章】多态
多态讲解原创 2024-09-03 18:27:27 · 1732 阅读 · 1 评论 -
【C++第十五章】继承
尽量不要设计多继承,且一定不要设计出菱形继承,这样会在复杂度和性能上存在问题。多继承可以说是C++设计缺陷之一,java中就没有多继承。public继承是is-a的关系,组合是一种has-a的关系。优先使用对象组合,而不是类继承。继承允许你根据父类的实现来定义子类的实现,这种通过生成子类的复用通常被称为白箱复用。“白箱”是相对可视性而言:在继承方式中,父类的内部细节对子类可见,继承一定程度破坏了父类的封装,父类的改变,对子类有很大的影响。父子类依赖关系很强,耦合度高。原创 2024-08-27 14:07:11 · 2141 阅读 · 0 评论 -
【C++第十四章】进阶模板
如下面的代码,声明和定义不在同一文件中,func函数能够正常使用,Add函数不能正常使用,这是因为在编译时,对func生成了汇编指令,在链接时能够找到func的地址。但是对于Add,编译器此时不确定Add的T到底是什么类型,所以没有生成汇编指令,从而导致链接时就找不到Add的地址。解决方式有两种,第一种是显示实例化,让编译器在编译时就知道Add是什么类型,能够进行实例化。不过这种方法限定了类型,还不如用重载。第二种是声明定义写到一个文件中,这样预处理时展开头文件声明和定义都有了,就能够确定类型了。模板。原创 2024-08-23 21:43:41 · 464 阅读 · 0 评论 -
【C++第十三章】Stack、Queue和Priority_Queue
stack、queue和priority_queue都是,它们不用自己管理数据,而是让其他容器管理,自己。适配器指的是一种(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。stack和queue不支持迭代器,因为会。queue也不适配vector,因为结构不匹配。原创 2024-08-19 17:05:03 · 1170 阅读 · 0 评论 -
【C++十二章】List
list的sort默认是升序(less),如果要排降序需要用到仿函数greater。由于list的sort效率不如vector(list底层是归并,vector是快排),所以当数据量很大时,我们可以将数据拷贝到vector,排完序再拷回来,效率会得到提高。原创 2024-08-10 22:08:18 · 916 阅读 · 0 评论 -
【C++第十一章】Vector
vector是表示,它类似于数组,但大小可以动态改变,并且大小会被容器自动处理。本质上说,,为了减少扩容代价,vector会分配额外空间进行元素存储。对比其他动态序列容器,,可以将其看为一个进行理解。原创 2024-08-05 09:55:39 · 1278 阅读 · 0 评论 -
【C++第十章】String
string介绍原创 2024-07-30 13:32:47 · 2179 阅读 · 2 评论 -
【C++第九章】初阶模板
C++中,我们写一个交换函数,使用可以解决不同类型交换这一问题,不过类型有那么多种,全部写出来,所以C++出现了来更好的解决类型问题。我们可以将模版看做生活中的模具,它的外型是固定的,填入不同的材料来获得不同的铸件。模板也是如此,函数功能一致,只是传入的类型可以随意更改。这也是我们的的基础——编写与类型无关的通用代码,可以对该代码进行复用。模板又分为和,我们先来介绍函数模板。原创 2024-07-24 19:15:50 · 1099 阅读 · 0 评论 -
【C++第八章】内存管理
调用operator new函数申请空间,在申请的空间上执行构造函数。原创 2024-07-21 10:15:05 · 931 阅读 · 0 评论 -
【C++第七章】类和对象 后篇
C++类和对象后篇原创 2024-07-18 01:05:02 · 1125 阅读 · 0 评论 -
【C++第六章】类和对象 中篇
六大默认成员函数原创 2024-07-14 16:31:20 · 1063 阅读 · 0 评论 -
【C++第五章】类和对象 前篇
在某些情况下,将成员函数的声明和定义分离,错误操作会导致找不到声明在哪: 此时需要在成员函数前加上作用域,让定义找到声明的位置就可以使用了。原创 2024-07-12 14:35:21 · 1703 阅读 · 1 评论 -
【C++第四章】宏和内联、范围for、nullptr
函数重载中提到过,一个程序编译需要经过四个阶段,第一个阶段预处理中有一个操作是宏替换。由于是替换,所以。但也不少,例如,所以在C++中出现了,对其进行了改善。原创 2024-07-10 17:41:56 · 825 阅读 · 0 评论 -
【C++第三章】引用
C++中引入了一个新的语言特性——引用(&),它表示某一对象的别名,对象与该对象的引用都是指向统一地址。那么我们就来看看关于引用的一些知识点吧🧐。原创 2024-07-08 16:09:12 · 1245 阅读 · 0 评论 -
【C++第二章】函数重载
C语言会进行报错C++能成功运行并且自动识别类型由此可以看出,C++在函数调用时进行了调整,使其支持函数重载,那么我们就来看看进行了哪些调整吧😎。原创 2024-07-03 22:16:23 · 257 阅读 · 0 评论 -
【C++第一章】命名空间和缺省参数
🎆前言🎆✨笔者也仅是大一萌新,写博客为了记录和巩固知识✨🥰赠人玫瑰,手留余香,欢迎各位读者进行交流和建议🥰🌹能与大家一起学习,一起进步是我的荣幸🌹🤞如果这篇文章有帮助到您,还请留个赞支持一下哦🤞目录:什么是C++C++的关键字(基于C++98版本)命名空间为什么存在命名空间?使用命名空间和作用域命名空间的嵌套和释放缺省参数/默认参数全缺省半缺省缺省参数的实际用法缺省参数的声明和定义最后🔎 1.什么是C++C语言是结构化和模块化的语言,适合处理较.原创 2022-05-02 13:18:08 · 1002 阅读 · 0 评论