
C++进阶
文章平均质量分 94
bingo691
只用全力向前,其他交给命运
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++进阶-IO流
在C语言中,如果想要将一个整形变量的数据转化为字符串格式,如何去做?使用itoa()函数使用sprintf()函数但是两个函数在转化时,都得需要先给出保存结果的空间,那空间要给多大呢,就不太好界定,而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃。int main()// 将数字转化为字符串cout原创 2024-08-16 16:41:59 · 904 阅读 · 0 评论 -
C++进阶-类型转换
1. C语言中的类型转换在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败显式类型转化:需要用户自己处理注意:C语言隐式类型转换:整形之间 浮点数和整形之间强制类型转换:指针之间 整形和指针无关联类型是不支持转换的2.C++中的类型转换兼容C的转换用法:内置类原创 2024-08-16 15:22:28 · 888 阅读 · 0 评论 -
C++进阶-特殊类设计
拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个类禁止拷贝,。C++98将,delete除了释放new申请的资源外,如果在默认成员函数后跟上=delete,。原创 2024-08-16 11:43:30 · 607 阅读 · 0 评论 -
C++进阶-智能指针
什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。// 1.内存申请了忘记释放// 2.异常安全问题Func();// 这里Func函数抛异常导致 delete[] p3未执行,p3没被释放.原创 2024-08-13 17:22:27 · 949 阅读 · 0 评论 -
C++进阶-异常
实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了public:, _id(id){}protected:int _id;原创 2024-08-12 19:48:37 · 828 阅读 · 0 评论 -
C++进阶-C++11
2.2 std::initializer_list3. 声明3.1 auto3.2 decltype3.3 nullptr4. 范围for循环5.STL中的一些变化6. 右值引用和移动语义6.1 左值引用和右值引用6.2 左值引用与右值引用比较6.3 右值引用的使用场景和意义7. 新的类功能8.可变参数模板9原创 2024-08-09 10:46:25 · 1081 阅读 · 0 评论 -
C++进阶-哈希扩展(位图和布隆过滤器)
位图的三个核心方法。原创 2024-07-31 18:04:25 · 1033 阅读 · 0 评论 -
C++进阶-哈希封装(unordered_set和unordered_set)
a.找下一个不为空的数组索引的指针,找到b.没找到,直接置空。原创 2024-07-30 18:33:13 · 414 阅读 · 0 评论 -
C++进阶-哈希表
映射:值和值进行1对1或者1对多的关联值和位置直接或者间接映射1.值很分散2.有些值不好映射,比如:string,结构体对象。原创 2024-07-30 10:41:19 · 881 阅读 · 0 评论 -
map_set(红黑树封装)
节点颜色定义:用枚举类型来定义// 枚举 enum Colour {节点数据类定义:模板来定义,来让map和set实例化,来在这里给与T相应的参数,来实现map和set// 节点类// 数据直接用一个来代替// 父亲节点// 左孩子节点// 右孩子节点T _data;原创 2024-07-26 16:16:46 · 327 阅读 · 0 评论 -
C++进阶-红黑树(map和set)
/ 枚举RED,BLACK// 节点类// 父亲节点// 左孩子节点// 右孩子节点// 节点数据// 节点颜色// 构造函数, _kv(kv){}原创 2024-07-26 11:33:24 · 1090 阅读 · 0 评论 -
C++进阶-AVL树(map和set)
/ 节点类//K _key;// 节点数据// 左孩子// 右孩子// 父亲节点// 数据int _bf;// 平衡因子// 构造函数_bf(0),_kv(kv){}原创 2024-07-22 16:53:15 · 999 阅读 · 0 评论 -
C++进阶-map_set
set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。set在底层是用二叉搜索树(红黑树)实现的。原创 2024-07-20 15:47:28 · 968 阅读 · 0 评论 -
C++进阶-二叉树进阶(二叉搜索树)
它或者是一棵空树,或者是具有以下。原创 2024-07-08 21:09:50 · 1196 阅读 · 0 评论 -
C++进阶-多态
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。1.虚函数的重写(父子类虚函数,要求三同(函数名、参数、返回值))2.父类的指针或引用去调用虚函数在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数派生类才能实例化出对象。原创 2024-07-06 20:24:47 · 734 阅读 · 0 评论 -
c++进阶-继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。//父类public:protected:// 姓名// 年龄// 继承后父类的Person的成员(成员函数+成员变量)都会变成子类的一部分。原创 2024-07-03 18:17:23 · 799 阅读 · 0 评论