自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DSA复习 ( 一 )- 算法效率与顺序表

数据结构与算法复习 - 这篇主要是说明算法效率与模拟实现顺序表

2025-08-06 15:43:58 787

原创 『 C++ 入门到放弃 』- 智能指针

关于智能指针的知识点与不同智能指针的模拟实现

2025-08-05 20:29:52 625

原创 『 C++ 入门到放弃 』- C++11 部分新特性

C++11 部分新特性

2025-08-05 11:45:49 710

原创 『 C++ 入门到放弃 』- 异常

【代码】『 C++ 入门到放弃 』- 异常。

2025-08-05 11:41:22 525

原创 C++ 类和对象复习(下)- 面向对象编程三大特性

介绍C++ 面向对象编程的三大特新 :)

2025-08-01 10:53:59 710

原创 C++ 类和对象复习(上)

注意以上5个运算符不能重载*

2025-08-01 10:33:16 966

原创 『 C++ 入门到放弃 』- 哈希表

就是哈希表

2025-07-28 13:40:49 1721 1

原创 『 C++ 入门到放弃 』- 红黑树

红黑树是一种自平衡二叉搜索树,通过在节点中添加颜色属性(红/黑)并遵循特定规则来保持近似平衡。其核心规则包括:根节点为黑色、红色节点的子节点必须为黑色、任意路径黑节点数相同。插入操作需分情况处理:空树插入时根节点为黑色;非空树插入红色节点后若父节点为红色,则需通过变色或旋转(单旋/双旋)来调整。旋转操作包括左旋和右旋,用于调整树结构但不改变搜索树性质。红黑树通过这种机制确保最坏情况下路径长度不超过两倍,保持高效操作性能。

2025-07-22 20:25:43 394

原创 『 C++ 入门到放弃 』- AVL树

AVL树实现摘要 AVL树是一种自平衡二叉搜索树,通过平衡因子(右子树高度-左子树高度)确保树平衡。文中详细介绍了AVL树的实现: 节点结构:包含左右子节点指针、父节点指针、键值对数据和平衡因子(_bf)。 旋转操作: 右旋:处理左子树过高的情况,将左子节点提升为根节点 左旋:处理右子树过高的情况,将右子节点提升为根节点 左右旋:先左旋左子节点再右旋父节点,处理左右不平衡 右左旋:先右旋右子节点再左旋父节点,处理右左不平衡 每种旋转操作都详细说明了指针调整步骤和平衡因子更新逻辑,并配有图示说明。

2025-07-19 19:18:40 195

原创 『 C++ 入门到放弃 』- set 和 map 容器

本文介绍了C++中的set和map两种关联容器。set是存储唯一元素的有序集合,底层采用二叉搜索树实现,提供插入、查找、删除等基本操作,时间复杂度为O(log n)。map存储键值对,同样基于红黑树实现,支持通过[]或at访问修改元素,提供三种插入方式:insert、operator[]和emplace。两种容器都支持迭代器遍历,并包含lower_bound、upper_bound等范围查找功能。set主要用于去重排序,map则适合键值映射场景,二者在STL中都是高效的数据结构实现。

2025-07-18 18:38:11 299

原创 『 C++ 入门到放弃 』- 二叉搜索树

介绍二叉搜索树及模拟实现

2025-07-13 10:24:07 346 1

原创 『 C++ 入门到放弃 』- 模版

C++ 模版的使用 ( 初阶到进阶 )

2025-07-07 20:23:55 851

原创 『 C++入門到放棄 』- string

C++ string类学习笔记摘要 本文整理了C++标准库中string类的核心知识点,包括: 基本概念:string是封装了C字符串操作的类,提供自动内存管理和丰富操作接口。 常用方法:包括创建/赋值、长度获取(s.size())、元素访问(s.at())、增删改查(append/erase/find)等操作,以及与C字符串转换的c_str()方法。 与C字符串对比:string自动管理内存和边界,安全性更高;而C字符串需手动处理内存和'\0'结尾。 注意事项:直接下标访问可能越界,c_str()返回不可

2025-07-05 21:22:13 365

原创 『 C++入門到放棄 』 - vector 容器

本文摘要: C++ vector容器是一种顺序表结构的动态数组,提供高效的随机存取和动态扩容功能。文章详细介绍了vector的基本操作(push_back/pop_back)、元素存取([]/at())、遍历方法(迭代器/范围for),以及空间管理(reserve/resize)。重点解析了vector的模拟实现,包括迭代器设计、深拷贝处理、插入删除操作时的迭代器失效问题及解决方案。通过模板类实现展示了vector的核心机制,如动态扩容策略和元素搬移逻辑,帮助深入理解STL容器的底层原理。(字数:150)

2025-06-21 19:36:30 491

原创 【数据结构】堆与二叉树

树是一种非线性的数据结构,其由 n 个 ( n >= 0 ) 有限节点所组成的一个有层次关系的集合。之所以称其为树,是因为其逻辑结构看起来像是一颗倒挂的树。在树中,有一个特殊的节点称为根节点(如上图中的 body 节点)根节点的特色是他没有前驱节点,除了根节点之外的其他节点被分成了 M 个 ( M > 0 )互不相交的集合T1T2TmT1​T2​...Tm​每一个集合的结构与树类似,我们又称其为子树,每个子树的根节点都有且只有一个前驱节点。

2025-03-02 21:03:39 1309 9

原创 【C语言复习】字符串函數

如果来原字符串的长度小于num,则拷贝完来原字符串后,在目标空间后边追加 0 直到num个。如果 source 指向的字符串的⻓度⼩于 num 的时候,只会将字符串中到。这个函数的作用就是在目标字符串后追加 source 字符串。比较是比较 str1 和 str2 字符的ASCII码值。的内容追加到destination指向的字符串末尾。读者有兴趣可以去看看错误码有哪些。这个函数可能相对会比较抽象。标准规定的返回值如下。它在做的事情是这样的。

2025-02-12 21:37:34 865 3

原创 指针复习 ( 下 )

根据数组名是数组⾸元素的地址这个规则,⼆维数组的数组名表⽰的就是第⼀⾏的地址,是⼀维数组的地址。根据上⾯的例⼦,第⼀⾏的⼀维数组的类型就是 int [5] ,所以。parr[i]是访问parr数组的元素,parr[i]找到的数组元素指向了整型⼀维数组,parr[i][j]就是整型⼀维数 组中的元素。⼆维数组其实可以看做是每个元素是⼀维数组的数组,也就是⼆维 数组的每个元素是⼀个⼀维数组。在本质上,数组传参传递的是首元素的地址,既然传入的是地址,那函数形参理论上也就应该使用指针变量来接收首元素的地址。

2025-02-12 11:26:13 809 1

原创 指针复习 ( 上 )

我们知道传值调用之所以没有办法成功交换 a 和 b 的值是因为 x、y 与 a、b的地址是不一样的,那我们只要让传入的形参是 a 和 b 的地址,不就能顺利交换了?这种传递的方式就称为。可以看到,藉由传入 a 和 b 的地址当做 Swap2 函数的参数,就可以成功让 a 和 b 的值进行交换,这种方式就称为。因为 a 是整型,申请了4个字节的空间,这4个字节是连续的,因此只要知道最小字节的地址,就能访问到4个字节的数据。而我们拿到了变量的地址,就能去拿到这个地址中的内容,要怎么拿到地址中的内容呢?

2025-02-12 00:18:53 884 6

原创 【初阶数据结构】栈与队列

从结构上可以更清楚地观察栈在插入数据与删除数据是如何表现的。,而另一端不允许操作的称为。

2025-02-10 20:10:41 10811 1

原创 【初阶数据结构】双向链表

/ 定义结构体}LTNode;

2025-02-09 18:38:08 1025 4

原创 【数据结构】单向链表 OJ篇

假设环存在,当慢指针进环时没有和快指针碰上,则快指针就会开始追击慢指针。思路 : 让一个指针从链表起始位置开始遍历链表,同时让一个指针从判环时相遇点的位置开始绕环运行,两个指针都是每次均走一步,最终肯定会在入口点的位置相遇。思路1 : 大于等于 x 的一个新链表,小于 x 的一个新链表,在小于x的新链表的最后一个节点后插入大于等于x的新链表。思路 : 利用两个指针,一个指针每次只走一步,另一个指针每次走两步。当慢指针走一步,快指针走三步,假设环存在,则在环中,两个指针每次的距离都会缩减两步。

2025-02-08 20:07:41 1658 5

原创 【初阶】数据结构 - 单向链表

此外,虽然双向带头循环链表的结构较为复杂,但等我们真正实现这种链表后会发现它有很多优势。这种链表的结构较为复杂,一般用双向带头循环链表来单独存储数据,实际上使用的链表数据结构都是双向带头循环链表。一般来说不会用来存储数据,通常是用来作为其他数据的子结构,如哈希桶、图的邻接表等。本身的值,让它存储新节点的地址。链表是物理上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现。在线性表的逻辑结构中,数据元素是按顺序排列的,因此它在。但在线性表的物理存储方式上,它不一定是连续的。

2025-02-04 20:40:11 1569 2

原创 类和对象 ( 上 )

简单说明C++中类的基本概念

2025-02-02 22:28:50 1161 1

原创 【入门】C++

宏的优点增加带码的复用性提高性能宏的优点不方便调试 ( 因为预处理阶段就进行了宏替换 )对于有些操作,宏定义会比较复杂,导致代码可读性差、可维护性差没有类型安全检查相较于宏定义函数,inline函数更 安全、可调试、可优化,并且可以与模板结合使用。

2025-02-01 10:45:24 1037 3

空空如也

空空如也

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

TA关注的人

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