- 博客(56)
- 收藏
- 关注
原创 No manual entry for printf in section 3
在尝试查看 printf 的 C 函数手册页(即 man 3 printf)时遇到了 “” 的错误信息。
2025-03-04 16:28:02
168
原创 C++11 ---- 右值引用和移动语义
左值引用只能引用左值,不能引用右值。但是const左值引用既可引用左值,也可引用右值。int main()//左值引用不能引用右值//const 左值引用可以引用右值return 0;右值引用只能右值,不能引用左值。但是右值引用可以move以后的左值。//右值引用不能引用左值//右值引用可以引用move后的左值return 0;
2024-09-06 11:00:12
934
1
原创 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
684
原创 红黑树(C++)
在上篇文章中,我们实现了AVL树,AVL树是一种高度平衡的二叉搜索树。通过确保任何节点的左右子树的高度差不超过1,AVL树能够维持严格的平衡状态。然而,严格平衡的代价是某些插入和删除操作可能需要多次旋转。本篇文章将实现红黑树,它是一种近似平衡的二叉搜索树。红黑树通过维持某些性质来保持树的平衡。通过这些性质,红黑树确保从根到叶子的所有路径中,最长路径不超过最短路径的两倍,从而实现近似平衡。这种近似平衡比AVL树的严格平衡稍松一些,使得它在某些插入和删除操作中的效率更高,因为它需要的旋转次数较少。
2024-06-13 11:23:05
934
1
原创 AVL树(C++)
引入成员_bf:用于记录当前节点的平衡因子,即右子树高度减去左子树高度的值。平衡因子的作用是帮助判断树的平衡状态,当平衡因子的绝对值大于1时,表示树失衡,需要进行相应的调整操作。引入_parent指针:指向当前节点的父节点。通过这个指针,可以在需要时访问到父节点。节点中存储的是键值对信息。//左孩子//右孩子//父节点int _bf;//平衡因子 balance factor//构造函数,_bf(0),_kv(kv){}
2024-06-01 12:33:22
1159
原创 根据一棵树的前序遍历与中序遍历构造二叉树(C++)
我们知道,前序遍历提供了节点的根节点顺序,而中序遍历提供了节点在树中的相对位置。输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的。创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!前序遍历确定根,中序遍历根据前序遍历确定的根划分左右子树!
2024-05-28 15:57:44
655
原创 二叉搜索树与双向链表(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
953
原创 搜索二叉树(C++)
搜索二叉树可以存储任何类型的数据,因此这里使用模板来实现搜索二叉树(模板允许我们创建一个泛型的节点结构,可以存储任意类型的值)。一个存储的值(_val)。指向左子节点的指针(_left,可以为空)。指向右子节点的指针(_right,可以为空)。K _val;//构造函数,_val(val){}public:private://根节点指针 _root为空代表空树。
2024-05-26 23:13:38
661
原创 C++ 多态详解
在继承中要构成多态还有两个条件必须通过基类的指针或者引用调用虚函数。被调用的函数必须是虚函数且派生类必须对基类的虚函数进行重写。多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如上面图片中的例子:Student继承了Person。Person对象买票全价,Student对象买票半价。public:cout << "全价" << endl;public:cout << "半价" << endl;Student s;
2024-04-30 17:43:31
824
原创 C++ string详解+模拟实现
在本篇文章中,我们主要介绍了 C++ 中的string 类的使用以及如何进行模拟实现。string 类是 C++ 标准库提供的一个重要组件,用于处理字符串,具有丰富的功能和便利的接口。我们首先介绍了 string 类的基本用法,紧接着详细讲解了string 类的模拟实现。在这个过程中,我们深入分析了 string 类的内部实现原理,包括字符串的存储结构、构造函数和析构函数的实现等。通过模拟实现 string 类,我们可以加深对C++ 中类的设计和实现的理解,同时也能提升我们的编程能力。
2024-03-14 23:07:54
961
原创 详解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
1506
1
原创 详解C++类和对象(下)完结篇
本篇文章详细介绍了C++类和对象中几个重要的概念和特性,包括初始化列表、Static成员、内部类等,下面我们来一一介绍它们。
2024-02-07 18:48:25
679
原创 详解C++类和对象(中(类的6个默认成员函数))
这篇文章详细介绍了类的 6 个默认成员函数,它们是构造函数、析构函数、拷贝构造函数、赋值运算符重载、取地址和 const 取地址操作符重载以及const 成员函数。这些成员函数在 C++ 中是默认生成的,默认成员函数在类的设计和实现中起着非常重要的作用,下面我们来一一介绍。
2024-02-06 21:47:49
1517
原创 详解C++类和对象(上)
类和对象这一章节,分为上、中、下三篇文章进行拆分介绍的,本篇文章介绍了类和对象中比较基础的一些知识点,比如如何定义一个类,类的大小如何进行计算等。
2024-02-04 21:44:33
673
原创 C++入门(基础语法)
C++在C的基础上引入了面向对象编程思想,并丰富了许多实用的库和编程范式。对于已经熟悉C语言的学习者,掌握C++可以更好地理解如何弥补C语言在某些方面的不足,并对C语言设计中不够合理的地方进行优化,涉及到作用域、IO、函数、指针、宏等方面的改进。本篇文章主要介绍了:C++是如何填补C语言语法的一些不足,以及介绍了C++如何优化C语言设计中不合理的地方,如作用域、IO、函数、指针、宏等方面的改进。
2024-01-29 16:15:28
733
原创 C语言实现八大排序算法(详解插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序(递归和非递归)、归并排序(递归和非递归)和计数排序)
本篇文章使用C语言实现了数据结构中常见的八大排序算法,它们分别是插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序和计数排序。
2024-01-20 15:20:41
1662
3
原创 堆的应用(堆排序、Top-K问题)
它的基本思想是利用堆这种数据结构的性质,通过建立一个堆(大堆或小堆),使得堆的根节点是所有节点中的最大值(大堆)或最小值(小堆)。,它利用了堆的性质:堆顶的数据,是堆中最大的数据(或者最小的数据)。该算法通过不断选择堆顶元素,将其与堆的最后一个元素交换,然后调整堆,使剩余部分重新构成堆,重复这个过程直到整个数组有序。创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!通常数据量都是比较大的。
2023-11-28 19:10:00
350
9
原创 堆详解(C语言实现)
本文介绍了使用C语言实现小根堆的一些常规操作,包括堆的定义、初始化、数据插入、向上调整、向下调整、数据删除、获取堆顶元素、获取堆元素个数、判断堆是否为空以及堆的销毁。
2023-11-28 10:15:52
752
6
原创 队列详解(C语言实现)
文章目录写在前面1 队列的定义2 队列的初始化3 数据入队列4 数据出队列5 获取队头元素6 获取队尾元素7 获取队列元素个数8 判断队列是否为空8 队列的销毁写在前面本片文章详细介绍了另外两种存储逻辑关系为 “一对一” 的数据结构——栈和队列中的队列,并使用C语言实现链队列。队列C语言实现源码:队列源码以队列在存储数据时具有特殊的顺序规则:队列:使用队列存储数据,遵循 “先进先出” 的原则,即最先进队列的数据最先出队列。队列也可以分为顺序队列(基于数组实现)和链队列(基于链表实现)。队列的实
2023-11-26 10:10:01
1413
7
原创 LeetCode刷题:27. 移除元素
本题的题解代码是用C语言编写的。📌本文由2023Fighting原创,优快云首发!📆首发时间:🌴2023年10月28日🌴💬参考在线编程网站:🌐🌐,平常博主写的程序代码都在里面。🙏文章仅供参考,如果发现错误,请及时告知我哦!
2023-10-28 22:25:34
225
1
原创 LeetCode刷题:88. 合并两个有序数组
本题的题解代码是用C语言编写的。2023Fighting的博客主页📌本文由2023Fighting原创,优快云首发!📆首发时间:🌴2023年10月28日🌴💬参考在线编程网站:🌐牛客网🌐力扣博主的码云gitee,平常博主写的程序代码都在里面。🙏文章仅供参考,如果发现错误,请及时告知我哦!题目链接88. 合并两个有序数组。
2023-10-28 14:05:39
368
7
原创 C语言实现顺序表(图解增删查改+代码)
顺序表是一种基本的数据结构,它是一种线性表,其元素在内存中是连续存储的。本篇文章以c语言的形式实现了数据结构中的顺序表。
2023-10-22 16:22:25
1530
11
原创 文件操作(打开关闭文件、文件顺序以及随机读写)
文件允许将程序的数据持久地保存在磁盘上。当程序结束运行或计算机关闭后,数据仍然存在,可以在下一次运行程序时继续使用。因此学习文件操作使我们能够更好地掌握数据的存储、读取和管理。
2023-10-15 10:38:09
963
9
原创 动态内存管理(malloc calloc realloc free)--- C语言
本文介绍了C语言中四个常用的内存分配和释放函数,它们是:malloc、calloc、realloc 、free。文章中讨论了这些函数的使用方法,示例代码,常见的动态内存错误以及如何防止内存泄漏。
2023-10-13 20:16:15
669
8
原创 内存操作函数(memcpy、memmove、memset、memcmp)---- C语言
本篇文章介绍了C语言中常用的内存操作函数,包括 memcpy、memmove、memset和memcpy。
2023-10-11 18:38:13
404
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人