
C++进阶
文章平均质量分 96
爱学习的鱼佬
C/C++领域新星创作者、C/C++方向新星计划Top5获得者、阿里云乘风者计划专家博主
展开
-
一篇文章带你详细了解C++智能指针
C++引入智能指针的主要目的是为了解决手动管理内存的问题,提高程序的健壮性和可维护性。在C++中,内存管理由程序员手动完成,包括内存的分配和释放。手动管理内存可能导致一些常见的问题,如内存泄漏、释放已经释放的内存(二次释放)、野指针等。原创 2023-12-06 21:22:51 · 1304 阅读 · 84 评论 -
一篇文章教会你什么是C++异常
C语言传统的处理错误的方式断言检查返回值检查全局错误码设置全局错误处理函数C++异常概念基本概念注意事项异常的使用异常的抛出和捕获异常的重新捕获异常安全异常规范自定义异常体系C++标准库的异常体系原创 2023-11-14 14:59:33 · 1242 阅读 · 123 评论 -
一篇文章教会你C++11入门知识点
C++11对比C++98增加的新特性和功能讲解原创 2023-10-20 21:59:47 · 610 阅读 · 123 评论 -
哈希的应用--位图和布隆过滤器
位图1. 位图概念2. 位图在实际中的应用3. 位图相似应用给定100亿个整数,如何找到只出现一次的整数?1个文件100亿int,1G内存,如何找到不超过2次的所有整数布隆过滤器1. 布隆过滤器的提出2. 布隆过滤器的插入3. 布隆过滤器的查找4. 布隆过滤器的删除5. 布隆过滤器的实现6. 布隆过滤器优点7. 布隆过滤器缺陷8. 布隆过滤器的应用原创 2023-10-11 17:30:50 · 1082 阅读 · 130 评论 -
一篇文章让你熟悉unordered_set及其模拟实现
是 C++ 标准库中的一个容器,用于存储唯一的元素,而且不按照任何特定的顺序来组织这些元素。它是基于哈希表实现的,因此可以在平均情况下提供常数时间的插入、删除和查找操作。以下是使用// 创建一个unordered_set// 向unordered_set中插入元素// 查找元素std::cout << "元素 2 存在于unordered_set中" << std::endl;// 遍历unordered_set中的元素return 0;原创 2023-10-09 16:36:44 · 974 阅读 · 136 评论 -
一篇文章让你熟悉unordered_map及其模拟实现
如何使用unordered_map及利用哈希表封装实现unordered_map原创 2023-09-27 21:57:20 · 1467 阅读 · 133 评论 -
一篇文章让你学会什么是哈希
哈希概念哈希冲突哈希函数1. 直接定址法2. 除留余数法3. 平方取中法4. 折叠法5. 随机数法6. 数学分析法哈希冲突解决1. 闭散列1.1 线性探测1.2 二次探测2. 开散列开散列和闭散列对比原创 2023-09-23 15:15:11 · 784 阅读 · 138 评论 -
一篇文章教会你利用红黑树实现map和set的封装
增加红黑树迭代器的代码1. map和set通用模板迭代器结构体定义2. 迭代器拷贝构造3. 迭代器解引用重载4. 迭代器箭头重载5. 迭代器不等于重载6. 迭代器判断相等重载7. 迭代器++重载8. 迭代器--重载修改红黑树结构体的成员及成员函数1. 修改红黑树结构体的成员定义2. 增加迭代器begin()和end()函数3. 修改红黑树Insert函数修改后红黑树全部代码简易封装map1. map封装代码2. 测试map封装简易封装set1. set封装代码2. 测试原创 2023-09-13 19:28:33 · 512 阅读 · 119 评论 -
一篇文章带你了解红黑树并将其模拟实现
红黑树的概念和性质红黑树的结构红黑树的节点定义及红黑树结构成员定义红黑树的插入红黑树的验证红黑树的遍历输出和左旋右旋红黑树模拟实现全部代码红黑树的应用红黑树与AVL树的比较原创 2023-09-12 14:00:22 · 454 阅读 · 127 评论 -
一篇文章教会你什么是高度平衡二叉搜索(AVL)树
AVL树的概念1.操作2.删除3.搜索4.实现描述AVL树的实现1.AVL树节点的定义2.AVL树的插入3.AVL树的旋转3.1 新节点插入较高右子树的右侧---右右:左单旋3.2 新节点插入较高左子树的左侧---左左:右单旋3.3 新节点插入较高左子树的右侧---左右:先左单旋再右单旋3.4 新节点插入较高右子树的左侧---右左:先右单旋再左单旋4.AVL树的验证4.1 验证其为二叉搜索树4.2 验证其为平衡树4.3 验证用例AVL树实现及验证所有代码1.AVL代码实现原创 2023-09-09 17:03:38 · 514 阅读 · 107 评论 -
C++进阶之一篇文章教会你什么是map和set
序列式容器和关联式容器键值对树形结构的关联式容器set1.set模板参数列表2.set的构造3.set迭代器4.set容器函数5.set修改器函数6.set观察器和操作成员函数7.set应用场景set和multiset的区别map1.map模板参数列表2.map的构造3.map迭代器4.map容量和元素访问函数5.map修改器函数6.map观察器和操作成员函数7.map应用场景map和multimap的区别原创 2023-09-05 23:05:41 · 1209 阅读 · 124 评论 -
一篇文章教会你什么是二叉搜索树
二叉搜索树概念二叉搜索树操作1.二叉搜索树的查找2.二叉搜索树的插入3.二叉搜索树的删除4.二叉搜索树的遍历二叉搜索树的实现1.二叉搜索树节点结构2.二叉搜索树类3.二叉搜索树的构造及析构4.二叉搜索树的拷贝构造及赋值重载5.二叉搜索树插入6.二叉搜索树查找7.二叉搜索树删除8.二叉搜索树中序遍历9.二叉搜索树所有代码二叉搜索树的应用二叉搜索树的性能分析原创 2023-09-03 15:13:07 · 1565 阅读 · 86 评论 -
C++进阶之多态
多态的概念多态的定义及实现1.多态的构成条件2.虚函数3.虚函数的重写4.虚函数重写的两个例外5.C++11 override 和 final6.重载、覆盖(重写)、隐藏(重定义)的对比抽象类1.概念2.接口继承和实现继承多态的原理1.虚函数表2.多态的原理3.动态绑定与静态绑定单继承和多继承关系的虚函数表1.单继承中的虚函数表2.多继承中的虚函数表继承和多态常见的面试问题原创 2023-09-01 14:43:45 · 764 阅读 · 125 评论 -
C++进阶之继承
继承的概念及定义基类和派生类对象赋值转换继承中的作用域派生类的默认成员函数继承与友元继承与静态成员复杂的菱形继承及菱形虚拟继承继承的总结和反思原创 2023-08-27 10:27:32 · 564 阅读 · 51 评论