小白的C++之路
文章平均质量分 89
C++
printf("雷猴");
一个小白
展开
-
哈希(含原码)
(因为14放在4后面,如果4删除了,那么这个位置变成空,遇到空了还没找到14,那么肯定没有14这个值,因为如果有就在空这里放14了)因此线性探测采用标记的伪删除法来删除一个元素。对于两个数据元素的关键字,但有:Hash(key1) ==Hash(key2),即:不同关键字通过相同哈希哈数计算出相同的哈希地址,该种现象称为哈希冲突或哈希碰撞。比如现在需要插入元素14,先通过哈希函数计算哈希地址,hashAddr为4,因此44理论上应该插在该位置,但是该位置已经放了值为4的元素,即发生哈希冲突。原创 2022-09-21 12:49:26 · 645 阅读 · 1 评论 -
红黑树总结
目录红黑树的概念红黑树的性质红黑树节点定义红黑树的结构红黑树的插入红黑树的验证红黑树与AVL树的比较红黑树,是一种二叉搜索树,在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。 1. 每个结点不是红色就是黑色2. 根节点是黑色的3. 如果一个节点是红色的,则它的两个孩子结点是黑色的4. 对于每个结点,从该结点到其所有后代叶结点的简单路径上,均 包含相同数目的黑原创 2022-08-07 11:22:49 · 138 阅读 · 1 评论 -
AVL树大总结
//左孩子//右孩子//父节点// 右子树-左子树的高度差int _bf;其中数据用pair(键值对来存储),详情可看下链接pair。原创 2022-08-03 13:28:15 · 254 阅读 · 4 评论 -
二叉搜索树
英汉词典中英文与中文的对应关系,通过英文可以快速找到与其对应的中文,英文单词与其对应的中文就构成一种键值对;以词库中所有单词集合中的每个单词作为key,构建一棵二叉搜索树在二叉搜索树中检索该单词是否存在,存在则拼写正确,不存在则拼写错误。2.KV模型每一个关键码key,都有与之对应的值Value,即的键值对。若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。若它的右子树不为空,则右子树上所有节点的值都大于根节点的值。其中带R的为递归实现。...原创 2022-07-27 19:06:43 · 106 阅读 · 0 评论 -
继承与派生
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。像下面的代码类学生和老师都继承自Person{public{}protected//姓名//年龄};{protected//学号};{protected//工号};intmain(){Students;{...原创 2022-07-21 14:48:25 · 102 阅读 · 0 评论 -
C++模板
想一想,如果我们需要实现一个通用的交换swap函数,那我们可以像这样,把每种类型的函数都写出来,构成函数重载使用函数重载虽然可以实现,但是有一下几个不好的地方:1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数2. 代码的可维护性比较低,一个出错可能所有的重载均出错那如果在C++中,能够存在这样一个模具,通过给这个模具中填充不同材料(类型),来获得不同材料的铸件(即生成具体类型的代码),那将会节省许多头发。这就是泛型编程。泛型编程:编写与类型无原创 2022-05-31 22:23:52 · 119 阅读 · 1 评论 -
内存管理总结
目录1. C/C++内存分布2. C语言中动态内存管理方式3. C++中动态内存管理3.1new/delete操作内置类型3.2new/delete操作自定义类型4. operator new与operator delete函数5. new和delete的实现原理5.1内置类型5.2自定义类型6. 定位new表达式(placement-new)7. 常见面试题7.1malloc/free和new/delete的区别7.2内存泄露7.2.1什么是内存泄露原创 2022-05-27 10:58:00 · 90 阅读 · 0 评论 -
类和对象——part3
目录1.构造函数深入1.1初始化列表1.2explicit关键字2.static成员2.1概念2.2特性3.C++11初始化新功能4.友元4.1友元函数4.2友元类5.内部类1.构造函数深入1.1初始化列表初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。class Date{public: Date(int year, int month, int day)...原创 2022-05-24 11:08:11 · 152 阅读 · 6 评论 -
类和对象——part2
目录1. 类的6个默认成员函数2. 构造函数2.1概念2.2特性3. 析构函数3.1概念3.2特性4. 拷贝构造函数4.1概念4.2特性5. 赋值操作符重载5.1运算符重载5.2赋值运算符重载6. 日期类的实现7. const成员函数8. 取地址及const取地址操作符重载1. 类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。2原创 2022-05-22 14:32:21 · 110 阅读 · 9 评论 -
类和对象——part1
进入类和对象!1.面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。举个例子,就拿我们去商店买东西来说,如果是面向过程,那么我们关注的是商店如何进货,商品如何售卖等等,但是如果是面向对象,那我们就注重商店提供的服务和顾客来商店有什么需求。这是两种思维模式2.类的引入C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也.原创 2022-05-12 19:49:44 · 132 阅读 · 6 评论 -
一文掌握C++基本语法
今天起终于能正式开始将自己学习C++的旅程记录在CSDN啦!目录1. C++关键字2. 命名空间2.1 命名空间定义2.2 命名空间使用3. C++输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类5. 函数重载5.1 函数重载概念5.2 名字修饰5.3 extern “C”6. 引用6.1 引用概念6.2 引用特性6.3 常引用6.4 使用场景6.5 传值、传引用效率比较6.6 引用和指针的区别7.原创 2022-05-12 14:11:10 · 250 阅读 · 3 评论