C++
文章平均质量分 95
2023Fighting
熬的住就出众,从来都不是嘴上说说而已。
展开
-
C++模板总结
进入C++以后,C++支持了函数重载也就是在同一作用域中可以存在功能类似的同名函数,例如swap函数来完成int,double,char等数据类型的交换。e1 = e2;e2 = tmp;e1 = e2;e2 = tmp;e1 = e2;e2 = tmp;重载的函数仅仅是类型不同,功能是类似,所以代码复用率比较低,而且一旦有新类型出现,就需要用户自己 增加对应的函数。代码的可维护性比较低,一个出错可能所有的重载均出错。原创 2024-07-11 13:17:16 · 586 阅读 · 0 评论 -
哈希表(C++实现)
可以不经过任何比较,一次直接从表中得到要搜索的元素原创 2024-07-01 22:14:39 · 1382 阅读 · 0 评论 -
红黑树(C++)
在上篇文章中,我们实现了AVL树,AVL树是一种高度平衡的二叉搜索树。通过确保任何节点的左右子树的高度差不超过1,AVL树能够维持严格的平衡状态。然而,严格平衡的代价是某些插入和删除操作可能需要多次旋转。本篇文章将实现红黑树,它是一种近似平衡的二叉搜索树。红黑树通过维持某些性质来保持树的平衡。通过这些性质,红黑树确保从根到叶子的所有路径中,最长路径不超过最短路径的两倍,从而实现近似平衡。这种近似平衡比AVL树的严格平衡稍松一些,使得它在某些插入和删除操作中的效率更高,因为它需要的旋转次数较少。原创 2024-06-13 11:23:05 · 836 阅读 · 1 评论 -
AVL树(C++)
引入成员_bf:用于记录当前节点的平衡因子,即右子树高度减去左子树高度的值。平衡因子的作用是帮助判断树的平衡状态,当平衡因子的绝对值大于1时,表示树失衡,需要进行相应的调整操作。引入_parent指针:指向当前节点的父节点。通过这个指针,可以在需要时访问到父节点。节点中存储的是键值对信息。//左孩子//右孩子//父节点int _bf;//平衡因子 balance factor//构造函数,_bf(0),_kv(kv){}原创 2024-06-01 12:33:22 · 1085 阅读 · 0 评论 -
根据一棵树的前序遍历与中序遍历构造二叉树(C++)
我们知道,前序遍历提供了节点的根节点顺序,而中序遍历提供了节点在树中的相对位置。输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的。创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!前序遍历确定根,中序遍历根据前序遍历确定的根划分左右子树!原创 2024-05-28 15:57:44 · 533 阅读 · 0 评论 -
二叉搜索树与双向链表(C++)
返回值: From left to right are:4,6,8,10,12,14,16;输入:{5,4,#,3,#,2,#,1} 返回值:From left to right are:1,2,3,4,5;当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!说明:输入题面图中二叉树,输出的时候将双向链表的头节点返回即可。原创 2024-05-27 17:56:47 · 908 阅读 · 0 评论 -
搜索二叉树(C++)
搜索二叉树可以存储任何类型的数据,因此这里使用模板来实现搜索二叉树(模板允许我们创建一个泛型的节点结构,可以存储任意类型的值)。一个存储的值(_val)。指向左子节点的指针(_left,可以为空)。指向右子节点的指针(_right,可以为空)。K _val;//构造函数,_val(val){}public:private://根节点指针 _root为空代表空树。原创 2024-05-26 23:13:38 · 619 阅读 · 0 评论 -
C++ 多态详解
在继承中要构成多态还有两个条件必须通过基类的指针或者引用调用虚函数。被调用的函数必须是虚函数且派生类必须对基类的虚函数进行重写。多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如上面图片中的例子:Student继承了Person。Person对象买票全价,Student对象买票半价。public:cout << "全价" << endl;public:cout << "半价" << endl;Student s;原创 2024-04-30 17:43:31 · 748 阅读 · 0 评论 -
C++继承详解
本篇文章详细介绍了面向对象编程中的继承概念及相关特性原创 2024-04-13 19:28:07 · 634 阅读 · 0 评论 -
C++ vector模拟实现
vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。原创 2024-03-30 22:46:49 · 846 阅读 · 0 评论 -
C++ string详解+模拟实现
在本篇文章中,我们主要介绍了 C++ 中的string 类的使用以及如何进行模拟实现。string 类是 C++ 标准库提供的一个重要组件,用于处理字符串,具有丰富的功能和便利的接口。我们首先介绍了 string 类的基本用法,紧接着详细讲解了string 类的模拟实现。在这个过程中,我们深入分析了 string 类的内部实现原理,包括字符串的存储结构、构造函数和析构函数的实现等。通过模拟实现 string 类,我们可以加深对C++ 中类的设计和实现的理解,同时也能提升我们的编程能力。原创 2024-03-14 23:07:54 · 833 阅读 · 0 评论 -
详解C&C++内存管理(new和delete)
本篇文章先讨了C/C++程序中的内存分布,并简单介绍了各个内存段的作用和特点。在此基础上,又着重讨论了C语言和C++语言中的动态内存管理方式,包括malloc()、free()等C语言函数以及new和delete等C++语言操作符。进一步探讨了operator new和operator delete函数在C++中的作用和使用方式,并揭示了new和delete的实现原理。最后,对定位new表达式(placement-new)进行了解析,介绍了它在特定场景下的应用、原创 2024-02-13 18:10:04 · 1465 阅读 · 1 评论 -
详解C++类和对象(下)完结篇
本篇文章详细介绍了C++类和对象中几个重要的概念和特性,包括初始化列表、Static成员、内部类等,下面我们来一一介绍它们。原创 2024-02-07 18:48:25 · 642 阅读 · 0 评论 -
详解C++类和对象(中(类的6个默认成员函数))
这篇文章详细介绍了类的 6 个默认成员函数,它们是构造函数、析构函数、拷贝构造函数、赋值运算符重载、取地址和 const 取地址操作符重载以及const 成员函数。这些成员函数在 C++ 中是默认生成的,默认成员函数在类的设计和实现中起着非常重要的作用,下面我们来一一介绍。原创 2024-02-06 21:47:49 · 1291 阅读 · 0 评论 -
详解C++类和对象(上)
类和对象这一章节,分为上、中、下三篇文章进行拆分介绍的,本篇文章介绍了类和对象中比较基础的一些知识点,比如如何定义一个类,类的大小如何进行计算等。原创 2024-02-04 21:44:33 · 632 阅读 · 0 评论 -
C++入门(基础语法)
C++在C的基础上引入了面向对象编程思想,并丰富了许多实用的库和编程范式。对于已经熟悉C语言的学习者,掌握C++可以更好地理解如何弥补C语言在某些方面的不足,并对C语言设计中不够合理的地方进行优化,涉及到作用域、IO、函数、指针、宏等方面的改进。本篇文章主要介绍了:C++是如何填补C语言语法的一些不足,以及介绍了C++如何优化C语言设计中不合理的地方,如作用域、IO、函数、指针、宏等方面的改进。原创 2024-01-29 16:15:28 · 685 阅读 · 0 评论 -
C++入门(基础语法)之函数重载
C++入门(基础语法)之函数重载原创 2022-02-13 15:31:04 · 379 阅读 · 8 评论