- 博客(58)
- 收藏
- 关注
原创 【C++】封装红黑树模拟实现set和map
本文介绍了如何基于红黑树封装实现STL中的set和map容器。主要内容包括:1. 改造红黑树模板,使其支持set和map的复用,通过模板参数和仿函数解决数据类型差异;2. 实现双向迭代器,包括++、--操作符重载,处理中序遍历顺序;3. 实现map的[]操作符,结合插入功能返回对应value;4. 完整实现查找、插入等接口,并处理const迭代器问题。通过封装红黑树作为底层结构,成功模拟了set和map的核心功能,展现了STL容器的设计思想。
2025-07-12 23:57:12
775
21
原创 【C++】红黑树的实现
本文深入讲解了红黑树的概念、实现及验证。红黑树是一种自平衡二叉搜索树,通过颜色约束规则确保最长路径不超过最短路径的2倍。文章详细介绍了红黑树的插入操作,包括变色、单旋和双旋等调整方法,并提供了完整的C++实现代码。通过对比AVL树,展示了红黑树在平衡性和效率上的优势。最后还介绍了红黑树的验证方法,确保其符合所有规则。红黑树的删除操作相对复杂,本文未作实现,但提供了相关参考书籍。
2025-05-25 01:17:54
3103
12
原创 【C++】异常
本文详细介绍了C++中的异常处理机制,包括异常的概念、抛出和捕获、栈展开、查找匹配的处理代码、异常的重新抛出、异常的安全问题、异常规范以及标准库的异常。异常处理机制允许程序在运行时检测并处理问题,将问题的检测与解决过程分离。通过try和catch块,程序可以捕获并处理异常,避免程序因未处理的异常而终止。文章还探讨了异常的安全性问题,如资源泄漏,并介绍了C++11中的noexcept关键字用于声明函数不会抛出异常。最后,文章提到了C++标准库中的异常继承体系,
2025-05-16 01:49:07
1174
30
原创 【C++】AVL树实现
本文详细介绍了AVL树的概念、实现及其自平衡机制。AVL树是一种自平衡二叉搜索树,通过控制左右子树的高度差来保证查找效率。文章首先介绍了AVL树的基本概念和平衡因子的作用,接着详细讲解了AVL树的插入操作,包括平衡因子的更新和四种旋转操作(右单旋、左单旋、左右双旋、右左双旋)的实现。此外,文章还介绍了AVL树的查找、平衡检测和删除操作,并通过代码示例展示了如何实现这些功能。
2025-05-11 15:55:14
1487
31
原创 【C++】多态
本文主要讲述C++中的多态,涉及的概念有虚函数、协变、纯虚函数、抽象类、虚表指针和虚函数表等。首先是继承。多态是一个继承关系的下的类对象,去调用同一函数,产生了不同的行为。
2025-03-21 18:28:38
1064
48
原创 【C++】继承
本文主要讲解C++的继承,概念偏多,包括继承的定义,转换,隐藏关系,还有派生类的默认成员函数,继承与友元还有静态成员的关系,菱形继承与虚继承等。
2025-03-15 18:04:58
1209
36
原创 【C++】stack和queue以及priority_queue的使用以及模拟实现
本文主要介绍C++【STL】中的栈(stack)和队列(queue)以及优先级队列(priority_queue),在栈和队列模拟实现的中会了解到deque(双端队列),还有优先级队列的模拟实现过程中了解到仿函数的实现与使用。内容丰富,干货满满,期待你的查阅。
2025-03-03 02:04:19
1175
22
原创 【C++】list 链表的使用+模拟实现
本文主要介绍C++【STL】容器中的 list,包括接口说明和模拟实现。其中讲解了迭代器功能上的分类,让你了解为何 list 要实现这个接口。
2025-02-23 23:00:45
1542
16
原创 【C++】vector的使用练习 + 模拟实现
本文主要介绍C++的【STL】容器之一的 vector,从基本功能介绍,到常用接口使用演示,接着还有 5 道vector使用练习题加强接口使用熟练度,最后模拟实现 vector,加强对 vector 的理解乃至完全掌握。
2025-02-16 00:35:00
1379
11
原创 【C++】STL介绍 + string类使用介绍 + 模拟实现string类
本文带大家入坑STL,学习第一个容器string,并初步了解编码。
2025-01-28 16:41:19
951
10
原创 【C++】类和对象(下)
本文主要内容:构造函数的再探--初始化列表、内置类型与自定义类型之间的转换、类的static成员、友元、内部类、匿名对象。最后还会了解一下编译器对类对象拷贝时的优化。
2024-12-01 15:30:11
1160
12
原创 【C++】类和对象(中)
本文主要讲述了类和对象的六个默认成员函数,这是c++类和对象中最重要的一节,干货多多,并且最终会实现完整的日期类代码。
2024-11-28 17:44:46
1011
15
原创 【手撕代码·二叉树】堆 和 二叉链的实现 + 算法题
本文内容:树的介绍、二叉树、顺序二叉树---堆的实现、堆排序、Top-K算法、链式二叉树的实现、二叉树算法题、二叉树常见选择题。内容较多,希望对大家有所帮助。
2024-10-22 00:17:48
1277
20
原创 【数据结构】栈和队列 + 经典算法题
本文完整实现了栈和队列的数据结构,以及栈和队列的一些经典算法题,让我们更加清楚了解这两种数据结构特点,并熟悉运用。
2024-10-09 21:53:22
1724
18
原创 数据结构之链表(2),双向链表
接着上一篇单链表来详细说说链表中什么是带头和不带头,“哨兵位”是什么,什么是单向什么是双向,什么是循环和不循环。然后实现完整的双向链表代码。
2024-09-30 18:40:14
1299
10
原创 C语言之预处理详解(完结撒花)
本文为我的C语言系列的最后一篇文章,主要讲述了#define定义和宏、#和##运算符、各种条件编译指令等,希望对大家有所帮助。
2024-09-18 21:44:13
1717
10
原创 C语言之编译和链接
我们平时写的C语言代码是如何变为可执行程序的呢?这个过程其实就是C语言的编译和链接过程。本文就来大致讲述这里的过程,让我们对这个过程有一个较清晰的认知。
2024-09-15 16:48:14
1311
4
原创 C语言之数据在内存中的存储(2),浮点数在内存中的存储
想知道浮点数在内存中是如何存储的吗,本文就告诉你答案,虽然一般情况题目还是面试涉及到浮点数在内存中的存储很少,但是了解其存储机制有利于加深我们对C语言的理解,修炼我们的内功。
2024-07-11 17:28:02
1340
15
原创 C语言之数据在内存中的存储(1),整形在内存中的存储与大小端字节序
本文主要讲述整型包括字符型是如何在内存中存储的,涉及到大小端字节序这一概念,还有如何判断大小端,希望对大家有所帮助。
2024-07-08 23:49:47
1008
12
原创 C语言之常用内存函数以及模拟实现
本文主要讲述C语言中常用的内存函数:memcpy、memmove、memset、memcmp。内容不多,除了了解如何使用,我们还会进行模拟实现这些库函数,希望对大家有所帮助。
2024-07-06 15:26:37
914
10
原创 2024年,计算机相关专业还值得选择吗?
问:随着2024年高考落幕,数百万高三学生又将面临人生中的重要抉择:选择大学专业。在这个关键节点,计算机相关专业是否仍是“万金油”的选择?在过去很长一段时间里,计算机科学与技术、人工智能、网络安全、软件工程等专业一直以来是炙手可热的存在,吸引了大批学生前往。然而,随着行业竞争加剧和市场饱和度提高,该类专业是否仍具有长远的发展潜力和就业前景呢?答:对于这个问题,我的答案是肯定的,因为对比其他专业,计算机专业还是非常公平的,你有技术,有本事,有能力,就一定有公司收容你。
2024-06-11 14:07:25
1363
7
原创 C语言之常用字符串函数总结、使用和模拟实现
本文介绍和模拟实现的字符串函数有:strlen、strcpy、strcat、strcmp、strncpy、strncat、strncmp、strstr。另外详细介绍了strtok 、strerror、perror函数的使用。基本囊括了所有常用的字符串函数。模拟实现有助于我们理解和记忆这些库函数,我们都能够自己实现这些库函数,使用时需要注意的细节我们肯定也更加清楚和深刻。最后,希望本文的内容能够帮助到大家更好的理解这些库函数
2024-06-10 19:03:23
2585
11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人