![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C嘎嘎
文章平均质量分 89
lim 鹏哥
这个作者很懒,什么都没留下…
展开
-
String(C++)
在本篇文章中,我们将会学习到string相关的内容,并且对部分容器进行模拟实现,了解底层原理。vs下ctrl+f可进行搜索string字符串是表示字符序列的类标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)。string类是basic_string模板类的一个实例。原创 2024-06-21 19:59:31 · 737 阅读 · 0 评论 -
Date类实现(c++)
我们本篇内容将会对Date类进行模拟实现以上就是今天要讲的内容。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘。原创 2024-06-21 19:58:34 · 548 阅读 · 0 评论 -
auto/范围for/nullptr(C++)
auto主要用于类型推导,代替长类型auto在c语言使用时修饰变量,表示这个变量是具有自动存储器的局部变量,但是在实际中几乎不会使用。C++11赋予了他新的含义,auto作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。auto b = a;return 0;typeid().name()可用于打印类型。对于指针*可写可不写。但是对于引用,&必须加上。原创 2024-06-17 19:20:01 · 871 阅读 · 0 评论 -
拿捏红黑树(C++)
我们之前介绍了一种AVL的高阶数据结构,在本篇文章中,我们将会介绍一种与AVL旗鼓相当的数据结构–红黑树。我们并且会对它的部分接口进行模拟实现AVL是保证左右高度不超过1,实现平衡。红黑树是在每个节点存储位表示颜色,包括红色和黑色,并且保证最长路径的节点个数不超过最短节点路径的两倍,我们就可以达到一种近似平衡性质🌟每个节点颜色不是红色就是黑色🌟根节点是黑色的🌟如果一个节点是红色,那么它的孩子必须是黑色节点(不允许出现连续的红色节点🌟每条路径都包含相同数量的黑色节点(路径:根节点到空)原创 2024-06-05 17:28:28 · 1193 阅读 · 0 评论 -
拿捏AVL(C++)
在本篇文章中我,我们将会介绍一下·有关AVL树的相关内容,并且对一些接口进行模拟实现。为什么会有AVL树呢??我们在之前学习二叉树时,如果我们插入的顺序是有序或者接近有序,就会退化成单支,查找一个值的时间复杂度就是O(N)。为了解决这个问题,因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:插入每个节点时,保证左右子树的高度差的绝对值不超过1,从而降低高度,保证平衡。为什么保证高度不超过1呢??为0不是更平衡吗??原创 2024-06-02 13:35:01 · 938 阅读 · 0 评论 -
c++11特性(详细)
在本篇文章,我们将会详细介绍一下C++11新增的一些特性,其中最重要的是右值引用,智能指针等,这其中也产生了很多不必要的语法设计。在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。原创 2024-05-29 08:58:34 · 1062 阅读 · 0 评论 -
C++类型转换
在本篇文章中,我们将会介绍一下C++中有关类型转换的知识,其中包含四种转换方式,static_cast,reinterpret_cast,const_cast,dynamic_cast,每一个都是不同的,还会简单介绍RTTI以上就是今天要讲的内容,本文仅仅详细介绍了C++类型转换的内容。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘。原创 2024-05-24 10:50:57 · 643 阅读 · 0 评论 -
拿捏C++智能指针
在本篇文章中我们将会讲解内存泄漏以及解决一下c++异常处理的一些复杂场景,从而引出智能指针。我们介绍智能指针之前,看一下这种场景如果我们采用异常的处理该如何解决??如果p1,p2,p3都申请到内存,正常释放,我们后续的代码应该是这样的new会进行异常检查那如果p1或者p2或者p3没有申请到内存,按照我们处理异常的方式,按照下面写法void fun()int* p1;int* p2;int* p3;delete[]p2;throw。原创 2024-05-21 12:20:09 · 809 阅读 · 0 评论 -
C++异常详解
在本篇文章中,我们将会详细介绍一下有关C++异常的讲解,主要涉及异常的使用,应用场景,异常的优缺点等方面,同时有了异常才会引出我们之后学习的一个非常重要的知识点————智能指针。在以后写代码的时候会遇到小组合作的形式,每个小组负责不同的模块,每个小组都会抛出异常,但是每个小组抛出的异常类型不同,放在一起在main函数中进行捕捉就会很复杂。实际中抛出和捕获的匹配原则有一个例外,类型可以不完全匹配,抛出子类对象用父类进行捕捉。每个小组都可以抛出派生类的异常,在mian函数中使用基类统一捕捉。原创 2024-05-12 18:16:31 · 1088 阅读 · 0 评论 -
C++set和map详细介绍
在本篇文章中,我们将会学到关联式容器set,multiset,map,multimap。其中前两种容器对应我们上篇二叉树文章中的K模型,后两者容器对应我们的KV模型。我们来详细看一下吧!!!看一下模板参数🌟T:底层存储的数据类型🌟Compare:比较方式,默认按照小于方式比较🌟Alloc:set中元素空间的管理方式,使用STL提供的空间配置器管理set文档介绍set是按照一定次序存储元素的容器。原创 2024-04-05 18:21:15 · 876 阅读 · 0 评论 -
搜索二叉树详细介绍C++
在本篇文章中,我们将会学到数据结构中有关二叉树中一种特殊的结构-----搜索二叉树,它的主要目的就是为了搜索,我们还将会对搜索二叉树进行模拟实现。二叉树我们都已经学习过了,二叉搜索树就是对普通二叉树进行一些限制,有一些新的功能。二叉搜索树又称二叉排序树,二叉查找树如果它的左子树不为空,则左子树上所有结点的值都小于根节点的值。如果它的右子树不为空,则右子树上所有结点的值都大于根节点的值。左右子树也分别是一颗二叉搜索树我们来看几个二叉树是不是二叉搜索树这个就是一个二叉搜索树。原创 2024-04-02 18:25:36 · 713 阅读 · 0 评论 -
C++多态详解
我们知道C++语言的三大特性(封装,继承,多态)在之前的文章中我们已经学习了封装和继承,在这篇文章中我们将会学习到有关多态的相关问题。这两个关键字是c++11新增的🌟重载:同一作用域中,函数名相同,函数参数不同的函数🌟 重定义(隐藏):父类和子类两个不同的作用域,只要父类和子类的函数名相同就可以。🌟重写(覆盖):两个函数分别在子类和父类的作用域,两个函数必须是虚函数,这两个函数函数名,参数,返回值相同(有例外,特殊考虑)。🌟如果子类和父类中既满足重写又满足隐藏,重写优先。原创 2024-03-29 18:27:47 · 726 阅读 · 0 评论 -
C++继承详解
在本篇文章中我们将会学到有关继承方面的知识,其中C++中三大特性分别为:封装,继承多态。由此可见继承在学习中的重要性,接下来我们来一起看一下有关继承方面的知识吧!!!!😘 😚😘 😚😘 😚以上就是今天要讲的内容,本文仅仅详细介绍了C++继承的相关知识。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘。原创 2024-03-29 16:06:23 · 1087 阅读 · 0 评论 -
C++反向迭代器模拟实现
在之前我们学习了正向迭代器,const迭代器,今天我们来学习一下反向迭代器,我们这次需要用到之前所学的适配器的知识。不是单纯的是实现反向迭代器。以上就是今天要讲的内容,本文仅仅详细介绍了C++反向迭代器模拟实现。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘。原创 2024-03-26 07:31:08 · 580 阅读 · 0 评论 -
C++模板详解
在本篇文章中,我们将会详细介绍一下C++中的模板相关的知识优点:模板复用了代码,节省资源,提高了代码的灵活性,本来我们需要做的重复事情交给编译器处理缺点模板会导致代码膨胀,也会导致编译时间过长,出现模板编译错误时,不容易定位错误。以上就是今天要讲的内容,本文仅仅详细介绍了C++模板相关实现。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘。原创 2024-03-24 20:38:31 · 917 阅读 · 0 评论 -
C++对比vector和list
以上就是今天要讲的内容,本文仅仅对比vector和list,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘。原创 2024-03-23 17:32:18 · 189 阅读 · 0 评论 -
C++stack,queue底层实现以及deque的详细介绍
在本篇文章中,我们将会学到stack,queue的底层实现,我们通过本篇的学习,我们会发现,栈和队列的实现和vector,list等容器的实现会有很大差异。我们实现栈和队列是通过一种叫容器适配器的东西实现的。我们还将会学到deque,这是一种将list和vector结合的一种容器。我们来详细看一看吧!!!🌟🌟🌟stack和queue都是默认采用deque实现的,我们接下来看一下这个容器为什么比vector和list更适合适配。deque是一个双端队列:两端开口,都可以进行插入删除,时间复杂度为O(1)。原创 2024-03-23 17:14:26 · 910 阅读 · 0 评论 -
C++ List底层实现
我们都清楚c++中的容器list,本质上就是一个带头双向循环链表,接下来我们实现一下list的底层,帮助我们更深层次的了解list的结构和使用//我们要注意end是哪个位置以上就是今天要讲的内容,本文仅仅详细介绍了C++list的模拟实现,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘。原创 2024-03-20 07:37:51 · 1068 阅读 · 0 评论 -
C++动态二维数组vector<vector<T>>详细讲解
以上就是今天要讲的内容,本文仅仅详细介绍了C++动态二维数组vector,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘 😘。原创 2024-03-11 13:13:30 · 528 阅读 · 0 评论 -
C++:vector底层剖析
在上篇文章中,我们介绍了vector的使用,在本篇文章中我们将会详细介绍一下vector的底层逻辑,我们会对vector有更深层次的理解以上就是今天要讲的内容,本文仅仅详细介绍了C++vector的模拟实现,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘。原创 2024-03-11 07:37:27 · 946 阅读 · 0 评论 -
C++内联函数与引用(超详细)
🧐🧐首先我们介绍内联函数之前,首先看一下我们之前学过的#define 定义的宏写一个宏函数,实现两个函数的相加int a = 10;int b = 20;return 0;int a = 10;int b = 20;return 0;int a = 10;int b = 20;return 0;int a = 10;int b = 20;return 0;int a = 10;int b = 20;return 0;int main()原创 2023-12-30 21:10:55 · 1076 阅读 · 0 评论 -
c++缺省参数与函数重载(超详细)
在本文章中,我们将要详细介绍一下C++c++缺省参数与函数重载的内容,具体包括定义,使用以及等缺省参数的概念,使用,分类,注意事项和函数重载中的一系列知识以及二者结合会产生什么样的效果相关的知识等。以上就是今天要讲的内容,本文仅仅详细介绍了C++c++缺省参数与函数重载,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘 😘。原创 2023-12-24 11:15:08 · 1318 阅读 · 1 评论 -
C++命名空间与输入输出(超详细)using namespace std
在本文章中,我们将要详细介绍一下C++命名空间的内容,具体包括命名空间的引出,定义,使用以及c++标准库等等。🌝🌝在命名空间中可以定义变量,函数,自定义类型等等return x+y;🌝🌝命名空间支持嵌套定义,这样也同时避免了出现重复变量struct stuint age;int x = 20;原创 2023-12-20 21:36:27 · 3228 阅读 · 0 评论 -
C++初始化列表
以上就是我们对C++初始化列表的详细介绍的相关内容的详细介绍,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~~原创 2023-11-08 15:32:52 · 27 阅读 · 0 评论 -
C++中cout,cin实现自定义运算符重载
这就需要我们自己实现了class Datepublic:_day = day;out原创 2023-11-04 11:31:02 · 351 阅读 · 0 评论 -
赋值运算符重载/拷贝构造(C++)
以上就是我们对赋值运算符重载的相关内容的详细介绍,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~~原创 2023-11-03 20:24:39 · 70 阅读 · 0 评论 -
构造函数,析构函数,拷贝构造函数练习题
构造函数,析构函数调用顺序原创 2023-11-02 16:09:22 · 110 阅读 · 1 评论 -
C++ 类的定义与使用
类这个概念是面向对象思想在 C++中的具体体现:它既是封装的结果,同时也是继承和多态的载体。🏉🏉C语言结构体中只能定义变量🏉🏉在C++中,结构体内不仅可以定义变量,也可以定义函数。类名就是类型。🏉🏉c++兼容c的用法,同时升级为类类的定义// 类体:由成员函数和成员变量组成// 一定要注意后面的分号类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。原创 2023-10-29 20:04:26 · 3013 阅读 · 1 评论 -
C++构造函数与析构函数
构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象,而是初始化对象根据需求传参分析一下下面的两段代码🎈 我们没有写构造函数,代码可以通过编译,因为编译器生成了一个无参的默认构造函数,生成随机值🎈 将Date类中构造函数放开,代码编译失败,因为一旦显式定义任何构造函数,编译器将不再生成,而对于显式定义的并没有给相应的初始值自动调用。原创 2023-11-02 08:27:12 · 82 阅读 · 1 评论