自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】继承和多态(上)

C++继承和多态,主要讲解C++中继承的定义,性质于使用场景。同时搭配了一些关于继承和多态的易错的面试题

2026-09-04 13:48:32 323 2

原创 【C++】模板进阶:非类型模板参数与模板的特化

本文主要介绍了C++模板编程中的两个重要特性:非类型模板参数和模板特化。非类型模板参数允许在模板中传递常量对象、指针或引用,常用于静态数组大小控制等场景。模板特化分为函数模板特化和类模板特化,其中函数模板特化通过template<>声明特定类型的实现,而类模板特化包含全特化(全部参数特化)和偏特化(部分参数特化)。文章以比较函数和优先队列仿函数为例,演示了如何通过特化处理指针等特殊类型,满足特定需求。模板特化扩展了模板的灵活性,是泛型编程中的重要技术。

2026-08-12 10:17:00 309 23

原创 【C++】反向迭代器:反向迭代器的底层认识与模拟实现

本文介绍了C++中反向迭代器的实现原理,通过适配器设计模式复用普通迭代器作为底层,结合运算符重载实现与迭代器相反的遍历方向。反向迭代器的核心在于封装迭代器类型并重载操作符,使其++对应迭代器的--,从而反向遍历容器。文章还解释了operator*返回前一个位置值的原因,以保持rbegin与end对称的逻辑关系。最后展示了反向迭代器在类中的实例化方式,强调其本质是通过封装普通迭代器实现反向遍历功能。

2026-08-12 10:12:08 431 21

原创 【C++】deque:深度剖析双端队列deque的核心机制

本文深入解析了C++ STL中deque容器的底层实现原理。deque通过中控数组(map)管理多个固定大小的缓冲区(buffer),以分段连续的方式模拟线性存储,从而高效支持两端操作(push_back/push_front)。其核心在于迭代器设计,通过cur、first、last、node四个指针实现跨缓冲区的随机访问(operator[]时间复杂度为O(1))。

2026-08-08 09:50:42 589 23

原创 【C++】stack和queue的应用及其模拟实现:适配器与容器适配器

本文列举了stack和queue成员函数的基本使用,了解stack和queue的特性,以及使用线性容器模拟stack和queue。最后讲解了适配器的设计模式以及容器适配器的概念和认识

2026-08-08 09:19:53 375 6

原创 【C++】深入剖析list:list及其双向迭代器实现

本文介绍了C++ STL中的list容器及其模拟实现的要点。深度解析了list迭代器的封装和原理。同时验证了list的成员函数sort的效率陷阱

2026-07-31 11:48:47 537 16

原创 《算 · 法》题目解析篇(1):最近公共祖先问题,线段树,最长回文子序列

本文解析了三个算法题目,分别涉及递归、动态规划和线段树: 二叉树的最近公共祖先(LeetCode 236) 解法一:暴力递归查找节点,时间复杂度O(n²)。 解法二:路径查找转化为相交链表问题,使用栈保存路径,时间复杂度O(n)。 最长回文子序列(LeetCode 516) 采用区间动态规划,dp[i][j]表示子串[i,j]的最长回文子序列长度,根据首尾字符是否相等进行状态转移,时间复杂度O(n²)。 贪婪大陆(洛谷 P2184) 使用线段树解决区间查询问题,通过维护区间信息高效处理查询和修改操作。

2026-07-31 11:31:16 317 16

原创 【C++ 】从vector的使用到底层的模拟实现

vector作为一个可变长数组,其底层实现却是有很多的坑,包括但不限于:迭代器失效,容器深层次的深浅拷贝,迭代器区间构造的调用歧义……

2026-07-19 14:29:12 415 8

原创 【C++】STL详解:string的模拟实现

本文介绍了如何手动实现C++中的std::string类,主要包括默认成员函数(构造函数、拷贝构造、赋值重载、析构函数)以及迭代器的实现。通过传统与现代两种方式对比,深入探讨了深拷贝与交换优化的技巧,同时分析了算法库swap的效率问题。文章还强调了命名空间的使用以避免冲突,并详细讲解了const迭代器的设计。通过简化版的string类实现,帮助读者理解其底层机制与设计思想。

2026-07-19 14:18:14 274 20

原创 【C++】STL详解:string的基本使用

本文全面介绍了C++标准库中string类的核心功能与使用方法。主要内容包括: 构造与初始化:详解7种构造函数,包括默认构造、C字符串构造、拷贝构造、子串构造等,以及赋值运算符重载的3种形式。 迭代器机制:讲解begin()/end()迭代器、const迭代器、反向迭代器的使用,以及基于迭代器的范围for循环实现原理。 容量管理:分析size()/length()、capacity()、resize()、reserve()等函数的区别与使用场景,强调容量预分配的重要性。 元素访问:对比operator[]、

2026-07-14 22:41:00 287 7

原创 【C++】内存管理:内存分布,new/delete的使用及细节处理,new/delete的底层,定位new表达式

C++内存管理——内存分布,new/delete的使用及细节处理,new/delete的底层,定位new表达式

2026-07-14 22:28:23 346 2

原创 【C++】类和对象(下):初始化列表,类型转换,static成员,友元,内部类,匿名对象,编译器的优化拓展

C++类和对象(下)——初始化列表,类型转换,static成员,友元,内部类,匿名对象,现代编译器的内部优化

2026-07-10 11:48:23 342 7

原创 【C++】类和对象(中):构造函数,析构函数,拷贝构造函数,赋值运算符重载重载,取地址运算符重载

本文介绍了C++类中的4种默认成员函数:构造函数、析构函数、拷贝构造函数和赋值运算符重载。主要内容包括: 构造函数:用于初始化类成员变量,特点包括与类同名、无返回值、支持重载。默认构造可以是无参、全缺省或编译器生成的。编译器生成的构造对内置类型不处理,对自定义类型会调用其构造。 析构函数:用于对象生命周期结束时清理资源,函数名为~类名,无参无返回值。编译器生成的析构对内置类型不处理,对自定义类型会调用其析构。动态内存管理的类必须自定义析构。 拷贝构造:实现同类对象的拷贝初始化,是构造的重载形式。默认拷贝构造

2026-06-28 20:16:23 449 11

原创 LeetCode 热题 100——3.最长连续序列

LeetCode 热题 100——3.最长连续序列

2026-06-28 20:11:51 328 5

原创 LeetCode 热题 100——2.字母异位词分组

LeetCode 热题 100——2.字母异位词分组

2026-06-22 20:36:00 238 4

原创 【C++】类和对象(上):类的定义,类的实例化,类的大小,this指针,面试题分析

C++类对象——类的定义,访问限定符,类的实例化,类的大小,this指针,面试题分析

2026-06-22 20:34:05 546 3

原创 【C++】C++入门(下):函数重载,引用,inline,nullptr

C++入门——函数重载,引用,inline与nullptr

2026-06-16 20:50:12 782 19

原创 LeetCode 热题 100——1.两数之和

LeetCode 热题 100——1.两数之和

2026-06-16 20:45:55 194 6

原创 【C++】C++入门(上):命名空间,输入输出,缺省参数

C++入门——命名空间,输入输出,缺省参数

2026-06-12 17:51:24 684 24

原创 【数据结构】排序的拓展——快速排序的生态多样性与归并排序沾染文件操作

排序算法的拓展——三路划分快速排序,自省快速排序,文件归并排序和非递归实现归并排序

2026-06-12 17:03:07 465 1

原创 【数据结构与算法】排序的奇思妙想——七大排序算法详解

七大比较排序算法详解——插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序以及归并排序。同时还讲解了一个非比较排序——计数排序。文章结尾还总结了各大排序算法的比较和应用场景

2026-06-04 10:50:29 771 30

原创 【数据结构与算法】树(下):堆的实现与应用,二叉树的实现与基本操作

本文讲解了堆的实现与应用,堆排序,TopK问题,以及二叉树的链式实现和基本的操作

2026-05-26 18:26:45 499 19

原创 【数据结构与算法】数据结构基础——树(上):树的存储结构,满二叉树,完全二叉树,二叉树的存储结构

【数据结构与算法】数据结构基础——树(上):树的存储结构,满二叉树,完全二叉树,二叉树的存储结构

2026-05-24 11:56:00 582 12

原创 【数据结构与算法】数据结构基础——栈和队列

数据结构——栈和队列【本文同时还扩展了两栈共享空间的技巧和循环队列】

2026-05-18 20:54:48 596 19

原创 【数据结构与算法】OJ题目详解(一)-单链表:从易到难的面试OJ题目

7道链表OJ题目,由易到难,适合刚学完链表的新手和准备面试的人

2026-05-15 18:59:50 583 16

原创 【数据结构与算法】算法竞赛篇-最短路问题:dijkstra,bellman_ford,spfa与floyd

本文详细讲解了最短路问题的各种算法,dijkstra算法,bellman_ford算法,spfa,floyd算法,以及不同算法的使用场景和扩展

2026-05-12 22:21:05 6425 15

原创 备战蓝桥杯国赛——Trie树,哈希,字符串的最小表示

备战蓝桥杯国赛——Trie树,哈希,字符串的最小表示

2026-05-02 19:36:17 389 6

原创 第17届蓝桥杯省赛题目及解析【B组】

第17蓝桥杯题目及题目解析,代码实现,其中还带有很多图方便读者理解算法原理和解题思路

2026-04-25 08:00:00 1426 7

原创 【算法竞赛】Kmp算法:两种方法解决字符串匹配问题

本文讲解了Kmp算法的作用和原理,用不同寻常的方式带你实现Kmp算法,同时还搭配有Kmp算法的例题练习

2026-04-18 21:46:28 1088 4

原创 数据结构【链表】

本文系统讲解了链表数据结构及其变体的实现原理与应用。首先对比顺序表和链表的性能差异,指出链表通过指针随机存储数据的优势。重点解析了单链表的结构定义和基本操作(插入、删除、查找),并通过C语言代码实现演示。随后引出双链表的概念,说明其通过增加前驱指针提升遍历效率的特性。 文章详细介绍了循环链表的实现机制,包括循环单链表和双向循环链表,特别强调尾节点指向头节点的关键修改。针对各类链表的操作差异,给出了清晰的代码示例和示意图解。最后通过两道经典算法题(环形链表检测和环入口查找)展示链表在实际问题中的应用,并附数学

2026-04-16 18:18:50 390 5

原创 算法刷题本(题目+题目讲解+代码实现)

算法的题目,包含了各种算法,和一些刷题经验已经题解

2026-04-13 22:24:22 387 1

原创 排序算法(插入,选择,冒泡,堆,快速,归并排序)

本文用c++实现了各种排序算法

2026-02-19 20:25:24 453 2

原创 数据结构(顺序表)

数据结构 || 静态顺序表,动态顺序表,顺序表的具体实现,命名细节

2026-01-06 09:56:05 555 3

原创 算法竞赛中常见的取模

算法竞赛中常见的取模(乘法逆元,费马小定理,快速幂算法的实现)

2025-12-31 15:59:54 775 1

原创 C语言学习笔记

C语言学习笔记||09 结构体的概念,结构体的认识和应用,结构体的内存对齐

2025-12-30 12:22:21 741 1

原创 错题本:求和

错题本(求和)||2025.12.28码蹄杯周赛

2025-12-30 09:57:13 474 3

原创 错题本:关羽一刀斩

错题本(关羽一刀斩)||2025.12.28码蹄杯周赛

2025-12-29 22:03:52 343 2

原创 错题本:恺撒加密

错题本(恺撒加密)|| 恺撒加密两种解方法和其中的技巧

2025-12-25 19:36:41 302 2

原创 C语言学习笔记

C语言学习笔记||08 二维数组和指针,函数指针

2025-12-13 11:18:26 651 2

原创 C语言学习笔记

C语言学习笔记||07(函数的嵌套和链式,C99中的变长数组,多文件编译)

2025-12-03 22:04:31 377 1

空空如也

空空如也

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

TA关注的人

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