
c++
文章平均质量分 94
清水墨客
终日昏昏醉梦间
忽闻春尽强登山
因过竹院逢僧话
偷得浮生半日闲
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++类和对象最全,最详总结(干货满满,不容错过)
5.且声明与定义分离的时候,需要指定类域,否则编译器怎么知道去哪里找呢?(一般都会先局部找,再去全局找)(指定类域还是用。原创 2025-03-15 11:33:59 · 1610 阅读 · 23 评论 -
C++智能指针(详细解答)
什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存,⼀般是忘记释 放或者发生异常释放程序未能执行导致的。内存泄漏并不是指内存在物理上的消失,而是应用程序分 配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:普通程序运行⼀会就结束了出现内存泄漏问题也不大,进程正常结束,页表的映射 关系解除,物理内存也可以释放。长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服 务、长时间运行的客户端等等,不断出现内存泄漏会导致可用内存不断变少。原创 2025-06-17 19:42:01 · 801 阅读 · 3 评论 -
C++异常(含最全的例子)
咱们不管在做什么事情的时候,都有犯错的时候,那么编译器也是,编译器也得需要检测你写的代码是否有错误,如果有错误,需要给你提示出来。而一般C语言主要通过错误码的形式处理错误,错误码本质就是对错误信息进行分类编号,拿到错误码以 后还要去查询错误信息,比较麻烦。所以,咱们在C++方面引入了异常(其实不光C++有,java等语言也有,因为这个异常确实很好用)。原创 2025-06-10 14:10:18 · 797 阅读 · 6 评论 -
C++11——新语法,新特性(怒肝三万七千字,详细解答)
其实在C++11之前,也就是只有C++98,C++03 这样的小版本进行小的改动,直到C++11,才进行了一个比较大的改动,增加了不少锦上添花的特性,也增加了不少雪中送炭的新语法。下面就跟着作者来一探究竟吧。原创 2025-06-09 19:42:21 · 805 阅读 · 3 评论 -
C++——STL——unordered_map与unordered_set的使用以及使用哈希表封装unordered_map/set
1.unordered_set的声明如上,Key就是unordered_set底层关键字的类型默认要求Key支持转换为整形,如果不支持或者想按自己的需求走可以自行实现支 持将Key转成整形的仿函数传给第二个模板参数t默认要求Key支持比较相等,如果不支持或者想按自己的需求走可以自行实现支持 将Key比较相等的仿函数传给第三个模板参数底层存储数据的内存是从空间配置器申请的,如果需要可以自己实现内存池,传给 第四个参数。5.⼀般情况下,我们都不需要传后三个模板参数。原创 2025-05-26 20:44:10 · 899 阅读 · 4 评论 -
C++——STL——封装红黑树实现mymap与myset
【1】如果当前结点是父亲的左,根据中序左子树->根结点->右子树,那么下一个访问的结点就是当前结 点的父亲;如下图:it指向25,25右为空,25是30的左,所以下一个访问的结点就是30。这个符合左根右的规则吧,那么到了30呢?下一步应该怎么去做呢?【2】迭代器++时,如果it指向的结点的右子树不为空,代表当前结点已经访问完了,要访问下一个结点 是右子树的中序第⼀个,一棵树中序第⼀个是最左结点,所以直接找右子树的最左结点即可。原创 2025-05-23 16:10:34 · 1168 阅读 · 3 评论 -
C++模板
class 类模板名//类内成员定义我之前的有关STL的文章中的模拟实现都是以模板来展开实现的,大家若还是不明白类模板的定义格式,以及怎么写的,可以参考我之前写的文章。一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有 目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。就是咱们写文件或者项目的时候,定义的.c,.h,.cpp文件这些东西。原创 2025-05-14 20:14:02 · 1715 阅读 · 19 评论 -
C++STL——map和set的使用
set的声明如下,T就是set底层关键字的类型• set默认要求T支持小于比较,如果不支持或者想按自己的需求走可以自行实现仿函数传给第二个模 版参数• set底层存储数据的内存是从空间配置器申请的,如果需要可以自己实现内存池,传给第三个参 数。• ⼀般情况下,我们都不需要传后两个模版参数。• set底层是用红黑树实现,增删查效率是 的。前⾯部分我们已经学习了vector/list等容器的使用,STL容器接口设计,高度相似,在这里我只挑选几个比较重要的接口来将。原创 2025-05-13 20:42:19 · 1341 阅读 · 20 评论 -
C++多态
定义:是⼀个继承关系的下的类对象,去调用同⼀函数,产生了不同的行为。条件:1.必须是基类的指针或者引用调用的虚函数。2.被调用的函数必须是虚函数,并且完成了虚函数重写/覆盖。还有几点要注意一下:要实现多态效果,第⼀,必须是基类的指针或引用,因为只有基类的指针或引用才能既指向基类 对象又指向派生类对象;第二,派生类必须对基类的虚函数完成重写/覆盖,重写或者覆盖了,基类和派 生类之间才能有不同的函数,多态的不同形态效果才能达到。原创 2025-04-24 19:37:46 · 1060 阅读 · 14 评论 -
C++继承(最详细)
什么叫继承呢?继承算是属于对代码的复用。即在保持原有的特性上面,增加一些新的方法以及变量,就叫做继承。那么原有的类叫做基类(父类),增加新的方法以及变量之后的类叫做派生类(子类)。继承 呈现了⾯向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的 复用,继承是类设计层次的复用。来看这一段代码,那么观察可以发现,Student与Teacher这两个类都是属于派生类(因为它们都继承了基类Person的特性),而Person类属于基类。原创 2025-04-22 22:38:03 · 1341 阅读 · 17 评论 -
C++——STL——容器deque(简单介绍),适配器——stack,queue,priority_queue
咱们今天讲适配器以及deque,主要讲适配器,那么讲deque是因为,stack,queue的底层都是封装的容器deque。Container就是适配器,可以看出,官方库中都是以deque为底层容器,那么为什么呢?今天咱们就来讨论一下。deque与queue看着是不是很像,但千万别把他们给搞混了,deque是容器,而queue是容器适配器。原创 2025-04-21 22:09:09 · 1134 阅读 · 21 评论 -
C++STL——容器-list(含模拟实现,即底层原理)(含迭代器失效问题)(所有你不理解的问题,这里都有解答,最详细)
先来看一段代码:struct AAint _a1;int _a2;:_a1(a1),_a2(a2){}// 特殊处理,省略了一个->,为了可读性++lit1;1.好,咱们先来处理那个遗留下来的问题: 为什么pos后要用"."来访问成员变量,首先:这个地方iterator是一个类,不是指针,所以,pos是这个类实例化出的对象,所以现在知道这里为什么用“."来访问成员变量了吧。原创 2025-04-13 13:47:46 · 1617 阅读 · 23 评论 -
C++STL——容器-vector(含部分模拟实现,即地层实现原理)(含迭代器失效问题)
C++ vector原创 2025-04-02 20:26:57 · 1447 阅读 · 14 评论 -
C++STL——容器-string(含模拟实现,即底层原理)全博客最细,万字巨作!
目录1.什么是STL?2.容器——stringMember functions(成员函数)1.constructor(构造)2. Iterators(迭代器)1.begin2.end3.rbegin4.rend3. Capacity(容量管理)1.size2.length3.max_size4.capcity5.resize编辑6.reserve7.clear编辑8.empty编辑4.Element Access(元素访问)2.at5.Modifiers(修改器)编辑2.append。原创 2025-03-29 16:32:57 · 1571 阅读 · 27 评论 -
第一篇c++
c++基础入门探讨(1)原创 2025-03-09 20:31:33 · 1389 阅读 · 0 评论 -
c++基础入门和数据结构初阶(1)
c++基础入门以及数据结构哦初阶--复杂度原创 2025-03-10 20:44:43 · 1153 阅读 · 15 评论 -
内存管理(c和c++综合)
【2】calloccalloc的两个参数,分别是开辟元素的个数,每个元素的字节大小。注意,calloc与malloc最大的区别是,calloc开辟空间并初始化数组(拿0来初始化数组),但calloc的效率可能更低一些。原创 2025-03-17 16:17:56 · 1197 阅读 · 11 评论