
C++
文章平均质量分 90
对于C++的学习和总结
迷迭所归处
愿君未来之路,步步生莲,前程似锦;岁月悠长,笑对风霜,一生灿烂
展开
-
C++ —— 以真我之名 如飞花般绚丽 - 智能指针
什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使⽤的内存,⼀般是忘记释放或者发⽣异常释放程序未能执⾏导致的。内存泄漏并不是指内存在物理上的消失,⽽是应⽤程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因⽽造成了内存的浪费内存泄漏的危害:普通程序运⾏⼀会就结束了出现内存泄漏问题也不⼤,进程正常结束,⻚表的映射关系解除,物理内存也可以释放。原创 2024-11-25 15:29:30 · 18864 阅读 · 234 评论 -
C++ —— 拨乱反正 回归世界的真理 —异常
⾸先检查throw本⾝是否在try块内部,如果在则查找匹配的catch语句,如果有匹配的,则跳到catch的地⽅进⾏处理。程序的⼀部分负责检测问题的出现,然后解决问题的任务传递给程序的另⼀部分,检测环节⽆须知道问题的处理模块的所有细节。所以⼀般main函数中最后都会使⽤catch(...),它可以捕获任意类型的异常,但是不知道异常错误是什么。catch(...)里面的...就是任意类型的异常,实际上是用来当一个保底的。如果抛出异常对象后catch没有捕捉到异常,那么后面的代码就不会执行了。原创 2024-11-22 20:34:44 · 1860 阅读 · 186 评论 -
C++ —— 剑斩旧我 破茧成蝶—C++11
新增了两个默认成员函数。原创 2024-11-19 19:59:12 · 17680 阅读 · 219 评论 -
C++ —— 哈希详解 - 开散列与闭散列
从发⽣冲突的位置开始,依次线性向后探测,直到寻找到下⼀个没有存储数据的位置为⽌,如果⾛到哈希表尾,则回绕到哈希表头的位置(需要注意的是每次初始化哈希表时,随机选取全域散列函数组中的⼀个散列函数使⽤,后续增删查改。因为开放定址法解决冲突不管使⽤哪种⽅法,占⽤的都是哈希表中的空间,始终存在互相影响的问题。把这些冲突的数据链接成⼀个链表,挂在哈希表这个位置下⾯,链地址法也叫做拉链法或者哈希桶。因为负载因⼦⼩于1,则最多探测M-1次,⼀定能找到⼀个存储key的位置。常数 A (0原创 2024-11-15 10:31:23 · 5246 阅读 · 137 评论 -
C++ —— map系列的使用
map可以对两个无关的值建立关系map的声明如下,Key就是map底层关键字的类型,T是map底层value的类型,set默认要求Key⽀持⼩于⽐较,如果不⽀持或者需要的话可以⾃⾏实现仿函数传给第⼆个模版参数map底层存储数据的内存是从空间配置器申请的。⼀般情况下,我们都不需要传后两个模版参数map底层是⽤红⿊树实现,增删查改效率是 O(logN) ,迭代器遍历是⾛的中序,所以是按key有序顺序遍历的map的三种构造//1.显式实例化直接构造//mapint main()//显式定义。原创 2024-10-23 11:38:27 · 5799 阅读 · 76 评论 -
C++ —— set系列的使用
1. set的声明如下,T就是set底层关键字的类型,set是去重的2. set默认要求T⽀持⼩于⽐较,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现仿函数传给第⼆个模版参数3. set底层存储数据的内存是从空间配置器申请的,如果需要可以⾃⼰实现内存池,传给第三个参数4. ⼀般情况下,我们都不需要传后两个模版参数5. set底层是⽤红⿊树实现,增删查效率是 O(logN) ,迭代器遍历是⾛的搜索树的中序,所以是有序的。原创 2024-10-22 12:59:12 · 1884 阅读 · 40 评论 -
数据结构 —— 关于二叉搜索树
感谢观看,完结撒花~原创 2024-10-21 19:17:45 · 1111 阅读 · 50 评论 -
C++ —— 关于多态
多态的构成条件:多态是⼀个继承关系的下的类对象,去调⽤同⼀函数,产⽣了不同的⾏为。⽐如Student继承了Person。Person对象买票全价,Student对象优惠买票实现多态还有两个必须重要条件:1. 必须是基类的指针或者引⽤调⽤虚函数2. 被调⽤的函数必须是虚函数。要实现多态效果1.第⼀必须是基类的指针或引⽤去调用虚函数,因为只有基类的指针或引⽤才能既指向派⽣类对象又指向基类2.第⼆派⽣类必须对基类的虚函数进行重写/覆盖,只有重写或者覆盖了,派⽣类才能有不同的函数。原创 2024-10-18 18:39:49 · 1263 阅读 · 39 评论 -
C++ —— 关于继承(inheritance)
Person是基类,也称作⽗类Student是派⽣类,也称作⼦类派⽣类用公有的方式继承了基类。原创 2024-10-13 15:20:43 · 1772 阅读 · 86 评论 -
C++ —— 关于模板进阶
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式(声明放到头文件,定义放到源文件【优点】1. 模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生2. 增强了代码的灵活性【缺陷】1. 模板会导致代码膨胀问题,也会导致编译时间变长2. 出现模板编译错误时,错误信息非常凌乱,不易定位错误t=O83A。原创 2024-10-10 19:51:26 · 1198 阅读 · 60 评论 -
C++ —— 优先级队列(priority queue)的模拟实现
队列是一种先进先出的数据类型。元素的入队都只能从队尾进入,出队时从队列头部出去优先级队列不能先进先出,更像是数据类型中的“堆”,也就是数组优先级队列每次出队的元素是队列中优先级最高的那个元素,默认大的值优先级高,如果想要小的值优先级高可以使用仿函数,而不是队首的元素,也就是每次出队,都是将当前队列中最大的那个元素出队。原创 2024-10-09 17:19:41 · 1789 阅读 · 68 评论 -
C++ —— 关于list
list的结构其实就是一个 "带头双向循环链表",与string和vector相比,list不支持下标+[]的访问,因为链表是由一个节点一个节点连接而成的,空间并不是连续的。原创 2024-09-24 20:51:46 · 1527 阅读 · 55 评论 -
C++ —— vector 的模拟实现
C++ —— 关于vector-优快云博客。原创 2024-09-22 16:11:09 · 1348 阅读 · 46 评论 -
C++ ——日期类的实现和注释浅解
不光适用于日期类,还适合所有的类的比较运算符。原创 2024-09-15 12:59:58 · 795 阅读 · 22 评论 -
C++ —— 关于string类
先占位置,后替换。原创 2024-09-09 20:51:26 · 1262 阅读 · 31 评论 -
C++ —— 关于vector
(constructor)构造函数声明接口说明vector()无参构造构造并初始化n个val拷贝构造使用迭代器进行初始化构造。原创 2024-09-19 21:03:34 · 1329 阅读 · 48 评论 -
C++ ——string的模拟实现
接C++ —— 关于string类-优快云博客。原创 2024-09-16 14:14:34 · 1246 阅读 · 35 评论 -
C++ —— STL简介
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架原始版本Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本--所有STL实现版本的始祖P. J. 版本由P. J. Plauger开发,继承自HP版本,被Wi原创 2024-07-22 19:37:13 · 500 阅读 · 2 评论 -
C++ —— 关于模板初阶
class 类模板名// 类内成员定义。原创 2024-07-22 18:53:35 · 1081 阅读 · 10 评论 -
C++ —— 关于类和对象(下)
建议。原创 2024-07-19 21:11:15 · 708 阅读 · 4 评论 -
C++ —— 关于类和对象(中)
6.原创 2024-07-19 15:24:15 · 854 阅读 · 5 评论 -
C++ —— 入门基础
在函数声明给缺省值。原创 2024-07-17 12:53:10 · 1187 阅读 · 3 评论 -
C++ —— 关于类和对象(上)
struct也可以定义类。原创 2024-07-11 20:04:54 · 974 阅读 · 6 评论 -
C++ —— 关于命名空间(namespace)
1. 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。本质是定义出⼀个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不在冲突了。3. C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响编译查找逻辑,还会影响变量的生命周期,原创 2024-07-11 10:33:48 · 658 阅读 · 4 评论