
c++
文章平均质量分 91
C++学习笔记
一个正直的男孩
在小的坚持*365,散发出的威力也不可小视
展开
-
[STL数据结构] AVL底层 与 红黑树
之前的搜索二叉树大家明显可以看出它的缺点,搜索二叉树的效率为logN,插入节点有序的时候效率退化为O(N)文章目录平衡二叉树红黑树平衡二叉树解决这一问题用一个平衡因子来控制左右子树的高度差不超过1,使二叉树避免单支,保持平衡,避免单支AVL树节点定义:templete<class K,class V>struct AVLTreeNode{ AVLTreeNode<K,V> * _left; AVLTreeNode<K,V> * _right;原创 2022-05-01 12:29:51 · 1042 阅读 · 7 评论 -
[STL与数据结构]搜索二叉树
大家好呀!今天带来的文章是平衡二叉树,你是否在写题的时候遇到需要容器存储,且是否效率低下,没事搜索二叉(map,set的底层)树帮你解决问题文章目录搜索二叉树的底层结构造轮子理解底层搜索二叉树的底层结构定义搜索二叉树的左子树永远比根小,右子树永远比根大,且树中值唯一确定(目前是),如图所示:你仔细看发现每一棵子树都是按照那个规则的,你在仔细看如果按照中序遍历(左,根,右)打印的话能会发现,竟然是一个升序的序列问那么这个用这个结构差找效率是多少呢?到底有多快呢?答搜索原创 2022-02-18 10:00:22 · 1193 阅读 · 15 评论 -
[C++]面向对象语言三大特性--多态
大家这篇文章描述的是我在学习多态时的一些学习笔记,和问题,还有一些面试题,希望这篇文章对你会有帮助文章目录什么是多态?如何才可以看到多态这一属性呢?(概念)什么虚函数?如何使用多态?C++奇葩的设计(多态篇)一些看起来挺实用,但是感觉又没啥用的操作多态的底层是如何实现的?什么是多态?下定义之前先讲个例子:加入你是一个铲屎官,且家里有三个祖宗 ???? 、???? 、????,那么在要干饭的时候,你为他们准备的食物分别是 猫粮,狗粮,胡萝卜。那么这里为不同的宠物准备不一样的食物就可以看做多原创 2022-02-12 16:54:16 · 723 阅读 · 17 评论 -
[C++] 面向对象语言的三大特性--继承
文章目录什么是面选对象语言的三大特性?什么是继承?什么是面选对象语言的三大特性?这里先简单来说下什么是面向对象的三大特性封装继承多态封装把函数和变量全部整合在一起进行管理,保护,如兵马俑如果不造围墙保护起来,限定你的活动范围起来,不然这些文物没几年说不定就消逝了。而封装也是一样把重要的数据给保护起来,暴露我想给接口访问 什么是继承? 继承这个词一般是在那个场景会用到呢?意志,或者家产那我们来以这个例子来引出继承吧void test1(){ int a =1原创 2022-02-08 15:05:19 · 957 阅读 · 15 评论 -
[C++ ,STL]vector模拟实现
vector才算是打开了泛型编程的大门,在之前的几篇博客中你可以明显看到vector的构造,等接口的参数多了一个templete,毕竟他可以存任何的数据类型,着篇博客会涉及到一些STL源码(让我们看看大神是如何实现的),且依旧沿袭上篇博客,我只实现我觉得比较难的接口文章目录1. 基本框架0 help 函数1 迭代器2 构造函数3 modify4 capacity1. 基本框架源码中是用iterator 创建了三个变量,start(开始)finish(结尾) end_of_storage(容量(c原创 2021-12-17 13:54:37 · 779 阅读 · 10 评论 -
[C++ 潜心修炼]string模拟实现篇
文章目录前文提要辅助函数1: 构造函数2:modify3: Capacity4:Iterator(迭代器)前文提要string这个容器比较简单,他就是字符的容器,不像别的容器 vector ,可以存内置类型,还可以存自定类型,甚至他还可以自己存自己(本质就是一个二维的数组),但是string只可以存字符,所以 string 是这个容器还可以看出泛型编程的好处辅助函数函数一:开空间 void Construction(const size_t length=1) { cha原创 2021-12-09 16:23:12 · 498 阅读 · 2 评论 -
[C++潜心修炼] 模版与泛型编程
文章目录泛型编程模版的基本介绍作用一:函数模版作用二:类模版总结泛型编程 可谓人如其名,泛着一词,就说明了通用,之前写代码的时候是不是逻辑一样但是参数不一样就需要在拷贝一份,修改变量名,而学了模版那么机会将少你2%的痛苦,这也是泛型编程基础模版的基本介绍 函数重载不知道是否还记得,他解决了函数只是参数不同但是要取多个名字的问题,那么模版在此之上又进行了优化,可以让你少些一些代码新装备 关键字:templatetemplate<typename or class原创 2021-11-12 15:54:31 · 631 阅读 · 0 评论 -
[C++ 潜心修炼]送对象啦
要对象吗,摸起来手感滑滑的那种类和对象的基本概念对象:大家知道C语言是面向过程的,而C++是面向对象的,那么啥是面向过程,啥事面向对象呢?面向过程:最近觉得自己王者荣耀段位太低了去找了个代练app,下单,看app是如何给我找人,代练如何的人是如何打游戏的呀,哦打完了要结算了,你每一个步骤,每个细节都要了解面向对象依旧是上面的例子,代练app下单,app分配打单人,打完结算,你不需要知道代app是如何找到代练,代练是如何打上去的,你只需要交钱即可类struct是C语言中的结原创 2021-11-03 14:15:22 · 184 阅读 · 1 评论 -
[C++潜心修炼]类与对象:构造与析构与拷贝构造
构造函数 在玩C时会遇到用数据结构的时候,每次用都要初始化,非常麻烦,且有时还会忘记初始化导致一些问题(如链表不初始化,他next不指向空那么就出问题了)默认构造:和类同名没有返回值class Data{ Data() { } }构造函数也可以代参,且他也支持函数重载呦class Data{ public: Data(int day)原创 2021-11-01 14:36:40 · 324 阅读 · 0 评论 -
[C++潜心修炼] operator重载
这个又啥用呢?这个用处可大啦,以为C语言沿袭过来的操作符是不可以给自定义类型用户使用的,可是这些都是这些操作符类也是需要用的,所以就有了运算符重载,他就是为类所产生的且这些重载得操作符的实现可以由你的想象实现没有任何限制operator(关键字)+运算符+(原来运算符的操作个数)下面都是写到类里,那么就可以少些一个左操作数,因为默认第一个是this重载> < >= <=这里会看到附用的价值bool Data::operator>(const Data原创 2021-11-01 14:17:40 · 364 阅读 · 0 评论 -
[C++潜心修炼] 小试牛刀
今天是来到美丽新世界的第二天,刚准备去探险就碰到了哥布林团伙,本想绕路而行,但是他们似乎……那么只能战斗……(普通哥布林)缺省参数 在C语言的时候你调用函数时,如果函数是有参数的,那么你调用就要传参数int Add(int x,int y)//{ return x+y;}int main(){ int c=原创 2021-10-30 20:08:01 · 238 阅读 · 0 评论 -
[C++ 潜心修炼]
打怪打怪………………文章目录函数重载入extern‘c内联函数函数重载入在写 C程序的时候是否遇到过这样的问题,就是明明功能是一样的但只是类型不一样就要特别区分一下,就挺让人恼火的可能C++之父觉得这样确实麻烦毕竟先名字确实是一个苦力活(玩笑罢了后面有详细的介绍,不过取名字确实累人),所以就有了函数重载函数重载基本介绍:在同一个作用域中可以允许函数重名 ,但是函数的形参必须不同,如参数个数,类型或者顺序extern‘c内联函数宏大家都知道吧,他短小精干,运行效率比函数快(直接替换不原创 2021-10-25 11:21:12 · 184 阅读 · 0 评论 -
[C++ 潜心修炼] 一块敲门砖
来吧是时候推开异世界的大门了,让我们看看这个是疯凶即恶的世界,还是美丽缤纷的新世界呢?想知道吗,跟紧我C++关键字 上文提到过就C++是在C的基础上进行拓展的,这个类似金庸小说里面偷取内功一样,为我己用,但是已经后面又在这个基础上潜心修行了后研究出了新的招式命名空间exter‘C’...原创 2021-09-29 15:33:26 · 353 阅读 · 9 评论 -
[初识C++] 何为最:心酸历史
木叶飞舞之处,火亦生生不息~~,没错开新坑了, 猜猜是啥,网传这个是最难的语言那么就由一代目带你们来会会这个家伙,先看看他什么什么来历, 敢称为最难的语言诞生于生长 1897年由贝尔实验室开发出来(C语言也是他研发的),他是在语言的基础上进行扩长 (他兼容C所有语法) , 增加了类的机制 , 起初叫 C with clas(C和类原创 2021-09-27 14:45:34 · 329 阅读 · 6 评论