C++从入门到进阶
文章平均质量分 85
详细介绍C++知识点
晚风吹长发
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++——C++重点知识点复习2(详细复习模板,继承)
本文系统介绍了C++模板和继承两大核心机制。模板部分包括函数模板和类模板的定义与实例化、非类型模板参数、模板特化(全特化和偏特化)以及模板声明与定义必须放在同一文件的原因。继承部分详细阐述了继承概念、对象切片、成员隐藏规则、派生类默认成员函数特点,重点分析了菱形继承问题及其解决方案——虚拟继承的原理(通过虚基表指针实现)。最后指出多继承的复杂性,建议优先使用组合而非继承,仅在实现多态等必要场景使用继承。全文揭示了C++通过模板实现编译时多态、通过继承实现运行时多态的设计哲学。原创 2025-08-21 13:50:20 · 1066 阅读 · 0 评论 -
C++——多态
概念:多态简单来说就是指多种形态,具体点就是不同的对象做一件事会产生不同的结果,更加专业一点的说是指:同一操作作用于不同对象时,会产生不同的执行结果。简单来说,就是 "同一个接口,不同实现"。原创 2025-08-24 11:32:53 · 921 阅读 · 0 评论 -
C语言重点复习
本文系统介绍了C语言中的指针、数组、内存管理、数据类型存储以及编译链接过程。重点内容包括:指针与数组的区别(数组指针int(p)[5]与指针数组intp[5]);函数指针和const修饰符的使用规则;strlen与sizeof的区别;常用库函数如memcpy、strcpy等的模拟实现;结构体和联合体的内存对齐规则;整数和浮点数的存储方式(原码、反码、补码及IEEE 754标准);宏定义的优缺点及使用注意事项;程序从预处理到链接的完整编译过程。这些知识点涵盖了C语言编程中的核心概念和底层实现原理。原创 2025-08-15 13:56:36 · 750 阅读 · 0 评论 -
C++中的类型转换和IO流
在C语言中,如果想要将一个整形变量的数据转化为字符串格式,如何去做?1.使用itoa()函数2.使用sprintf()函数但是两个函数在转化时,都得。原创 2025-08-14 11:44:03 · 1018 阅读 · 0 评论 -
C++——C++重要知识点复习1
默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅拷贝,或者值拷贝。4 . 编译器生成的默认拷贝构造函数已经可以完成字节序的值拷贝了,但是对于开辟空间了的类型需要进行深拷贝,需要自己实现5. 拷贝构造函数典型调用场景:使用已存在对象创建新对象函数参数类型为类 类型对象函数返回值类型为类 类型对象。原创 2025-08-17 10:28:15 · 890 阅读 · 0 评论 -
C++11实用语法2(万能引用&&,完美转发,可变参数模板,lambda)
模板中的&&不代表右值引用,而是万能引用,其既能接收左值又能接收右值,模板的万能引用只是提供了能够接收同时接收左值引用和右值引用的能力。如下面的代码,T&&在这里就代表了万能引用,既可以接收左值,又可以接收右值。我们看以下代码:PeffectForward分别接收了左值,右值,const左值,const右值,由它调用的func函数应当调用相对的func函树。但是调用结果却和我们想象的不一样,这就是我们万能模板的存在的缺点,当他引用右值的时候,会退化成左值,知道这点之后这样的结果就说的通了。原创 2025-08-09 17:36:08 · 1738 阅读 · 0 评论 -
哈希杂谈(位图,布隆过滤器)
哈希思想在计算机领域应用广泛,位图和布隆过滤器是其典型应用。位图通过二进制位表示数据存在与否,适用于海量数据去重判断,可以高效实现40亿整数的存在性查询。布隆过滤器结合哈希和位图,解决了字符串等非整型数据的存储问题,通过多个哈希函数减少误判率,常用于推荐系统去重等场景。文章详细介绍了位图的实现原理(set/reset/test操作)及其应用案例(如统计整数出现次数、查找文件交集),并阐述了布隆过滤器的设计思想和基本实现方法。这两种数据结构在空间效率和查询性能上都具有显著优势。原创 2025-08-05 18:58:39 · 827 阅读 · 0 评论 -
哈希表,哈希桶
中,元素关键码与其存储位置之间没有对应的关系,因此在。,搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以。。当向该结构中:根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功该方式即为哈希散列方法,哈希表的实现哈希表的实现有两种方法:一是直接定址法(适用于值分布范围集中的数据),二是除留余数法(适用于值的范围比较分散)原创 2025-08-02 11:07:49 · 876 阅读 · 0 评论 -
AVL 树
AVL树的复习笔记原创 2025-07-26 10:31:56 · 398 阅读 · 0 评论 -
map_set的简单模拟实现
包含了构造红黑树的过程以及旋转操作:不懂可以看看我的红黑树和AVL树的笔记public://const类型迭代器elsereturn cur;else//到达插入位置else//开始构建红黑树while (parent && parent->_color == RED)//父亲存在并且颜色为红色//找到祖父结点if (parent == grandfather->_left) //如果父亲是祖父的左孩子。原创 2025-07-29 09:44:49 · 348 阅读 · 0 评论 -
C++中一些特殊类的设计
为什么会产生设计模式这样的东西呢?就像人类历史发展会产生兵法。最开始部落之间打仗时都是人拼人的对砍。后来春秋战国时期,七国之间经常打仗,就发现打仗也是有。原创 2025-08-13 10:29:44 · 713 阅读 · 0 评论 -
C++入门(namespace,using)
有人就会想我们可以不定义rand变量用别的,但是在项目开发中很难知道是否有函数的命名与定义的一样。域就是一块空间,我们熟悉的就有全局与,与局部域,列如在main函数中定义的变量就是在局部域中,所以namespace就可以认为是我们自己命名的一块域。这里的using和上面的作用是一样的std时c++标准库的域名,因此在平常的见到的C++代码中都会有using namespace std。他的作用可以展开命名空间域,我们需要知道在a在打印时的访问顺序为 局部域>全局域>展开了的域 or 指定了命名空间域。原创 2025-03-23 15:20:40 · 244 阅读 · 0 评论 -
详细理解C++11中的智能指针
什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。2.2内存泄漏的分类C/C++程序中一般我们关心两种方面的内存泄漏:堆内存泄漏堆内存指的是程序执行中依据须要分配通过等从堆中分配的一。原创 2025-08-12 12:21:35 · 2449 阅读 · 0 评论 -
红黑树简单模拟
红黑树是一种自平衡二叉搜索树,通过颜色标记(红/黑)和旋转操作保持平衡。其特性包括:根节点为黑色、红节点的子节点必须为黑、从任一节点到叶子节点的路径上黑节点数相同。插入操作先按二叉搜索树规则定位位置,新节点默认为红色。若父节点为红,则需调整:若叔叔为红则变色处理;若叔叔为黑则旋转(单旋或双旋)并调整颜色。最终根节点保持黑色。红黑树通过颜色约束和旋转确保最长路径不超过最短路径的两倍,维持近似平衡。原创 2025-07-27 12:14:47 · 195 阅读 · 0 评论 -
unordered_set_map模拟实现
在解释操作时会详细解析为什么这样定义.//将自己重定义为self 方便代码书写//在set模拟是会解释public:,_pht(pht)原创 2025-08-04 10:20:26 · 383 阅读 · 0 评论 -
C++11实用新增语法详解1(列表初始化,auto,decltype,nullptr,范围for)
左值是一个表示数据的表达式如变量名或解引用的指针。原创 2025-08-09 14:28:25 · 1972 阅读 · 0 评论 -
C++11实用语法3(function包装器,bind)
function包装器:function包装器 也叫作适配器。C++中的function本质是一个类模板,也是一个包装器。那么我们来看看,我们为什么需要function呢?当我们看见下面这个表达式时,我们可能会猜想func可能是什么呢?比如func是函数名?函数指针?还是函数对象(仿函数对象),还是lambda表达式对象呢?这些都有可能,因此我们把以上的类型统一叫作可调用类型。有如此丰富的类型,可能会导致模板效率低下,有没有什么办法让他们都变成一个类型呢?这就是我们要提到的function包装器啦!!原创 2025-08-10 12:33:49 · 925 阅读 · 0 评论
分享