c++
文章平均质量分 90
昨天;明天。今天。
这个作者很懒,什么都没留下…
展开
-
_c++(特殊类设计)
文章目录1. 请设计一个类,只能在堆上创建对象2. 请设计一个类,只能在栈上创建对象3. 请设计一个类,该类不能发生拷贝4. 请设计一个类,该类不能被继承5. 单例模式5.1 饿汉模式5.2 懒汉模式原创 2022-11-29 18:26:52 · 156 阅读 · 0 评论 -
_c++11(智能指针)
RAII特性重载operator*和opertaor->,具有像指针一样的行为。原创 2022-11-24 21:51:48 · 127 阅读 · 1 评论 -
_c++异常
文章目录1.C语言传统的处理错误的方式2. C++异常概念3. 异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3异常安全3.4 异常规范4.自定义异常体系5.C++标准库的异常体系6.异常的优缺点6.1 C++异常的优点:6.2 C++异常的缺点:原创 2022-11-23 23:33:14 · 106 阅读 · 0 评论 -
_c++11(包装器)
文章目录1. function(包装器)2. bind(适配器)原创 2022-11-22 23:15:22 · 446 阅读 · 0 评论 -
_c++11( lambda)
lambda表达式1 C++98中的一个例子2 lambda表达式3 lambda表达式语法4 函数对象与lambda表达式原创 2022-11-22 21:24:58 · 374 阅读 · 0 评论 -
_c++11(可变参数模板)
【代码】_c++11(可变参数模板)原创 2022-11-21 23:11:05 · 342 阅读 · 0 评论 -
C++11中篇
1. 右值引用和移动语义1.1 左值引用和右值引用1.2 左值引用与右值引用比较1.3 右值引用使用场景和意义1.5 完美转发2. default 和delete原创 2022-11-19 09:58:38 · 510 阅读 · 0 评论 -
C++11初篇(快速了解)
1. C++11简介2. 统一的列表初始化2.1 {}初始化2.2 std::initializer_list3. 声明3.1 auto3.2 decltype3.3 nullptr4 范围for循环原创 2022-11-16 21:12:10 · 692 阅读 · 3 评论 -
_cpp 布隆过滤器
1. 有误判率,即存在假阳性(False Position),即不能准确判断元素是否在集合中(补救方法:再建立一个白名单,存储可能会误判的数据)2. 不能获取元素本身3. 一般情况下不能从布隆过滤器中删除元素4. 如果采用计数方式删除,可能会存在计数回绕问题原创 2022-11-13 15:15:47 · 245 阅读 · 2 评论 -
_cpp 位图
文章目录1. 位图概念1.1 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。2. 位图的实现2.1 运行结果:3. 位图应用3.1 具体代码封装实现如下3.2 部分结果演示:3.3 应用总结:4. 位图特点原创 2022-11-13 13:26:26 · 717 阅读 · 0 评论 -
_cpp利用哈希封装实现unordered_map和unordered_set
0. 前言1. 改造哈希表1.1 哈希表节点的定义1.2 哈希表中的迭代器1.2.1 模拟实现后置加加的方法1.2.2 哈希表迭代器代码1.3 仿函数1.4 哈希表整体改造完成后的代码2. 封装实现unordered_map3. 封装实现unordered_set4. 测试案例5. 测试结果原创 2022-11-12 10:21:34 · 669 阅读 · 1 评论 -
c++哈希(哈希表开散列实现)
文章目录0. 前言1. 开散列1.1 开散列概念2. 开散列的代码实现2.0 定义2.1 插入实现--Insert2.2 查找实现--Find2.3 删除实现--Erase2.4 仿函数3. 完整代码实现4. 代码测试并运行结果:原创 2022-11-11 18:29:37 · 702 阅读 · 0 评论 -
c++哈希(哈希表闭散列线性探测实现)
闭散列:也叫开放定址法,当发生哈希冲突时,如果哈希表未被装满,说明在哈希表中必然还有空位置,那么可以把key存放到冲突位置中的“下一个” 空位置中去。那如何寻找下一个空位置呢?EMPTY , //空标记 EXIST , //存在 DELETE //删除 };};public :// 插入 bool Insert(const pair < K , V > & kv);// 查找 HashDate < K , V > * Find(const K & key);原创 2022-11-09 14:22:05 · 1048 阅读 · 5 评论 -
_cpp利用红黑树封装实现map和set
0. 前言1. 改造红黑树1.1 红黑树节点的定义1.2 红黑树中的迭代器1.2.1 模拟实现前置加加的方法1.2.2 模拟实现前置减减的方法1.2.3 红黑树迭代器代码1.3 仿函数1.4 红黑树整体改造完成后的代码2. 封装实现map3. 封装实现set4. 测试案例5. 测试结果原创 2022-11-06 18:31:28 · 796 阅读 · 5 评论 -
_cpp 红黑树快速了解底层结构
友友们上一章节我们了解了AVL树的底层结构,此章我们来了解红黑树。AVL树是一棵绝对平衡的二叉搜索树,其要求每个节点的左右子树高度差的绝对值都不超过1,这样可以保证查询时高效的时间复杂度,即log2(N)log_2 (N)log2(N)。AVL树的性能方面:对AVL树做一些结构修的操作,性能非常低下,比如:插入时要维护其绝对平衡,旋转的次数比较多,更差的是在删除时,有可能一直要让旋转持续到根的位置。原创 2022-11-05 11:42:20 · 664 阅读 · 8 评论 -
_cpp AVL树(map、set等关联式容器的底层结构)
0. 前言1. AVL树的概念2. AVL树节点的定义3. AVL树的插入4. AVL树的旋转4.1 新节点插入较高右子树的右侧---右右:左单旋4.2 新节点插入较高左子树的左侧---左左:右单旋4.3.新节点插入较高左子树的右侧---左右:先左单旋再右单旋4.4 新节点插入较高右子树的左侧---右左:先右单旋再左单旋5. AVL树的验证6. 本篇总代码原创 2022-11-02 18:34:47 · 708 阅读 · 17 评论 -
_c++ map和set用法讲解
3.1.1 set的介绍set文档介绍翻译:set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。原创 2022-10-30 15:34:53 · 120 阅读 · 0 评论 -
_cpp二叉搜索树
a、从根开始比较,查找,比根大则往右边走查找,比根小则往左边走查找。b、最多查找高度次,走到到空,还没找到,这个值不存在。b. 树不空,按二叉搜索树性质查找插入位置,插入新节点。a. 树为空,则直接新增节点,赋值给root指针。原创 2022-10-26 21:45:30 · 123 阅读 · 1 评论 -
_c++再谈多态之深入了解
文章目录0. 前言1. 多态的原理1.1虚函数表1.2多态的原理1.3 动态绑定与静态绑定2. 单继承和多继承关系中的虚函数表2.1 单继承中的虚函数表2.2 多继承中的虚函数表2.3. 菱形继承、菱形虚拟继承原创 2022-10-22 12:21:30 · 130 阅读 · 1 评论 -
_c++多态_轻松入门
需要声明的,本节课件中的代码及解释都是在32平台(vs),涉及的指针都是4bytes。如果要其他平台下,部分代码需要改动。比如:需要考虑指针是8bytes等问题。必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写在虚函数的后面写上 =0 ,则这个函数为纯虚函数。**包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。**派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。原创 2022-10-21 13:16:57 · 581 阅读 · 0 评论 -
c++中的继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。原创 2022-10-15 19:15:13 · 193 阅读 · 1 评论 -
c++--再谈模板
0.前言c++ 初级模板链接:文章日期类链接:1. 非类型模板参数2. 类模板的特化2.1 概念2.2 函数模板特化2.3 类模板特化2.3.1 全特化2.3.2 偏特化3. 模板的分离编译3.1 什么是分离编译3.2 模板的分离编译3.3 解决方法4. 模板总结原创 2022-09-30 17:39:47 · 637 阅读 · 3 评论 -
反向迭代器---迭代器适配器
reverse_iterator认识reverse_iterator 模拟实现reverse_iterator在list内部的使用reverse_iterator在vector内部的使用原创 2022-09-28 20:07:51 · 321 阅读 · 1 评论 -
stack&&queue使用和模拟实现--cpp
文章目录1. stack的介绍和使用&&模拟实现1.1 stack的介绍1.2 stack的使用1.3 stack的模拟实现2. queue的介绍和使用&&模拟实现2.1 queue的介绍1.2 queue的使用1.3 queue的模拟实现3. 容器适配器3. 什么是适配器原创 2022-09-25 14:48:45 · 175 阅读 · 0 评论 -
vector使用和模拟实现--cpp
vector的介绍及使用1.1vector的介绍1.2 vector的使用1.2.1 vector的定义1.2.2 vector iterator 的使用1.2.3 vector 空间增长问题1.2.4 vector 迭代器失效问题。2.vector深度剖析及模拟实现2.2 使用memcpy拷贝问题原创 2022-09-19 22:02:41 · 157 阅读 · 1 评论 -
了解string以及简单模拟实现(c++)
文章目录00. 前言01. string中常用类成员03. 为什么学习string04. string模拟实现0. 析构函数:1. string类对象的常见构造2. string类对象的容量操作3. string类对象的访问及遍历操作4. string类对象的修改操作5. string类非成员函数............原创 2022-08-16 23:17:01 · 439 阅读 · 0 评论 -
c++--模板初级应用
文章目录01. 泛型编程02. 函数模板02.1 函数模板概念02.2 函数模板格式02.3 函数模板的原理02.4 函数模板的实例化03. 类模板03.1 类模板的定义格式03.2 类模板的实例化原创 2022-08-09 19:44:07 · 164 阅读 · 0 评论 -
C/C++内存管理
文章目录01. c/c++内存分布02. C语言中动态内存管理方式03. C++内存管理方式03.1 new/delete操作内置类型3.2 new和delete操作自定义类型原创 2022-08-07 11:42:17 · 319 阅读 · 0 评论 -
类与对象--末篇(c++)
00. 前言01. 初始化列表使用场景02. Static成员03. 友元友元函数友元类04. 内部类原创 2022-08-06 13:12:47 · 157 阅读 · 0 评论 -
类与对象---砥柱篇1(c++)
01 构造函数01.1 概念01.2 特性02. 析构函数02.1 概念02.2 特性03. 拷贝构造函数03.1 概念03.2 特性04. 赋值运算符重载04.1 运算符重载04.2 赋值运算符重载原创 2022-07-23 18:11:03 · 379 阅读 · 0 评论 -
类与对象--过渡篇(c++)
6. 类的实例化7. 类的对象大小的计算7.1 类对象的存储方式7. 2如何计算类对象的大小8. 类成员函数的this指针原创 2022-07-17 20:12:26 · 176 阅读 · 0 评论 -
类与对象--起始篇(c++)
文章目录1. 面向过程和面向对象初步认识2. 类的引入3. 类的定义4. 类的访问限定符及封装4.1 访问限定符5. 类的作用域原创 2022-07-17 16:48:55 · 159 阅读 · 0 评论 -
C++入门基础
1缺省参数1.1 缺省参数概念1.2缺省参数分类*全缺省参数**半缺省参数2函数重载2.1 函数重载概念3引用3.1 引用概念3.22 引用特性3 常引用3.4 使用场景原创 2022-07-10 14:37:01 · 300 阅读 · 0 评论