自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 C++11新特性

C++11新特性1、C++112、列表初始化3、类型推导3.1 auto3.2 decltype4、final与override5、6、7、8、总结1、C++11C++ 11 标准是C++98后的新标准,该标准在 C++ 98 的基础上修正了约 600 个 C++ 语言中存在的缺陷,同时添加了约 140 个新特性,这些更新使得 C++ 语言焕然一新,这使得C++11更像是从C++98/03中孕育出的一种新语言,相比与C++98,C++11能更好地用于系统开发和库开发,其语法更加简单、稳定和安全,不仅功能

2022-05-30 20:34:59 722

原创 位图/布隆过滤器+海量数据处理

位图/布隆过滤器+海量数据处理1、位图1.1 概念1.2 应用2、位图实现3、布隆过滤器3.1 概念3.2 查找3.3 删除3.4 优点3.5 缺陷4、布隆过滤器实现1、位图1.1 概念数据是否在给定的整形数据中,结果是在或者不在,刚好是两种状态,那么可以使用一个二进制比特位来代表数据是否存在的信息,如果二进制比特位为1,代表存在,为0代表不存在。位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。1.2 应用快速查找某个数据是否在一个集合中

2022-05-26 23:21:32 169

原创 哈希及其模拟

哈希及其模拟1、概念1.1哈希1.2哈希冲突1.3哈希函数2、闭散列2.1线性探测2.2二次探测2.3扩容3、闭散列线性探测模拟4、开散列4.1扩容5、开散列模拟实现6、哈希桶迭代器7、封装unordered_set8、封装unordered_map总结1、概念1.1哈希在线性表和平衡树中,元素的存储位置是随机的,即元素的存储位置与其关键码之间没有关系,因此在查找一个元素时,必须要经过关键码的多次比较。线性查找的时间复杂度为O(N),平衡树中查找效率为树的高度,即O(log2(N)),搜索的效率取决于

2022-05-24 23:42:39 153

原创 红黑树(二)

红黑树(二)1、迭代器1.1begin和end2、改进红黑树3、set的模拟4、map的模拟1、迭代器迭代器是容器访问的重要手段,红黑树的迭代器实际是一个指针,要求按照中序遍历指向每个数据。1.1begin和endbegin应该指向树的最左边,但end并不指向树的最右边,而是它的下一个空结点。实现begin时只要迭代找到树的最左结点即可,而end其实可以用两个指针来实现,如下图:假设一个迭代器指向结点值为1(begin)的位置,记为cur,那么它的下一个就是结点值为5的位置,记为parent,此

2022-05-19 16:52:15 106

原创 红黑树(一)

红黑树(一)1、概念2、性质3、红黑树的插入3.1按二叉搜索树的插入确定插入位置3.2根据性质调整结构3.2.1uncle存在且为红,cur在parent的左边3.2.2uncle不存在(为空)或uncle存在且为黑,cur在parent的左边3.2.3uncle不存在(为空)或uncle存在且为黑,cur在parent的右边4、红黑树的验证1、概念红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是红或黑。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有

2022-05-18 00:38:57 69

原创 set和map

set和map1、容器1.1 序列式容器1.2 关联式容器2、键值对3、树形结构的关联式容器3.1 树型结构的关联式3.2 set3.3 map3.4 multiset3.5 multimap4、5、6、7、8、总结1、容器1.1 序列式容器vector、list、deque、forward_list和string 与vector等相关的容器都是序列式容器,其底层都是线性的数据结构,能够快速访问,存储元素本身。1.2 关联式容器与序列式容器不同,元素存储的位置由元素相关联的字值决定,因此在数据

2022-05-14 00:39:18 40

原创 C++二叉搜索树

C++二叉搜索树1、概念2、操作2.1增加(插入)2.2删除2.3查找2.4修改3、 二叉搜索树的性能分析4、模拟实现代码1、概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值;若它的右子树不为空,则右子树上所有节点的值都大于根节点的值;它的左右子树也分别为二叉搜索树。2、操作2.1增加(插入)树为空,直接插入,返回true;树不为空,判断根节点数据大小,根数据大往左边找,否则往右边找,找到返回true;

2022-05-05 18:39:01 560

原创 C++多态

C++多态1、概念2、定义2.1多态构成的条件2.2虚函数2.3虚函数的重写1.协变(基类与派生类虚函数返回值类型不同)2.析构函数的重写override 和 final关键字3、抽象类3.1概念3.2 接口继承和实现继承4、多态的原理4.1虚函数表4.2多态的原理4.3 动态绑定与静态绑定1、概念多态的概念:通俗来说,就是多种形态,具体点就是对象去完成某个行为,当不同的对象去完成时会产生出不同形式的结果。2、定义2.1多态构成的条件必须通过基类的指针或者引用调用虚函数;被调用的函数必须是虚函

2022-05-04 00:39:53 137

原创 C++继承

C++继承1、概念和定义1.1概念1.2定义2、基类和派生类对象赋值转换3、继承中的作用域4、派生类的默认成员函数5、 继承与静态成员6、菱形继承及菱形虚拟继承7、8、总结1、概念和定义1.1概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,即用已有的类来定义新的数据类型,所定义的新的类中包括了旧的类,这样产生新的类,称派生类或子类,旧的类称为基类或父类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂

2022-05-01 23:30:55 70

原创 C++string模拟实现

C++string模拟实现1、主要默认成员函数2、遍历3、增删查改4、运算符重载5、<<和>>的重载6、测试函数7、完整函数1、主要默认成员函数 string(const char* str = "") { _size = strlen(str); _capacity = _size; _str = new char[_capacity +1]; strcpy(_s

2022-04-16 22:58:56 49

原创 C++模板

模板1、函数模板1.1概念1.2格式1.3原理1.4实例化1.5匹配原则2、类模板2.1格式2.2 类模板的实例化1、函数模板1.1概念函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。1.2格式template<typename T1, typename T2,......,typename Tn>//typename是用来定义模板参数关键字返回值类型 函数名(参数列表){}如下面的交换模板:template<type

2022-04-10 23:58:35 45

原创 动态内存管理

动态内存管理1、动态内存分配存在的价值2、动态内存函数的介绍2.1malloc和free2.2 calloc2.3 realloc3、常见的动态内存错误3.1 对NULL指针的解引用操作3.2 对动态开辟空间的越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部分3.5 对同一块动态内存多次释放3.6 动态开辟内存忘记释放(内存泄漏)总结1、动态内存分配存在的价值int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈

2022-04-07 00:11:22 42

原创 C/C++内存管理

这里写标题一、C/C++内存分布二、 C语言中动态内存管理方式三、C++中动态内存管理四、operator new与operator delete函数五、new和delete的实现原理六、定位new表达式(placement-new)七、常见面试题总结一、C/C++内存分布二、 C语言中动态内存管理方式三、C++中动态内存管理四、operator new与operator delete函数五、new和delete的实现原理六、定位new表达式(placement-new)七、常见面试题总结

2022-04-06 01:13:30 80

原创 C++类和对象(三)

系列文章目录C++类和对象(一)C++类和对象(二)文章目录系列文章目录标题前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结标题前言C++类与对象的学习第三节。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matpl

2022-04-03 20:42:27 42

原创 C++类和对象(二)

文章目录前言一、类的6个默认成员函数二、构造函数三、析构函数四、拷贝构造函数五、赋值运算符重载6. 六、const成员6. 七、取地址及const取地址操作符重载总结前言前面学习了类和对象的初始部分,现在继续学习知识点。https://mp.csdn.net/mp_blog/creation/editor/123784307一、类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数:构造函数:主要完

2022-03-28 19:51:52 68

原创 C++类与对象(一)

文章目录前言一、类1、类的定义2、类的访问限定符及封装2.1访问限定符2.2封装3.内存对齐规则二、this指针1.this指针的引出2.this指针的特性总结前言有了C语言的基础,现在就开始学习C++。一、类C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。但是C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。C语言中,结构体中只能定义变量,但在C++中,结构体内不.....

2022-03-28 00:28:24 46

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除