- 博客(48)
- 收藏
- 关注
原创 【LeetCode】set和map相关算法题 前K个高频单词、随机链表的复制、两个数组的交集、环形链表
set和map相关算法题 前K个高频单词、随机链表的复制、两个数组的交集、环形链表
2025-08-07 15:06:33
239
18
原创 【C++详解】STL-set和map的介绍和使用样例、pair类型介绍、序列式容器和关联式容器
STL-set和map的介绍和实际使用、pair类型介绍、序列式容器和关联式容器
2025-08-06 15:29:21
880
22
原创 【C++详解】⼆叉搜索树原理剖析与模拟实现、key和key/value,内含优雅的赋值运算符重载写法
⼆叉搜索树原理剖析与模拟实现、key和key/value,,内含优雅的赋值运算符重载写法
2025-08-05 10:27:08
941
21
原创 【Linux】linux基础开发工具(三) 版本控制器Git、调试器 - gdb/cgdb使用、一些实用的调试技巧
版本控制器Git、调试器 - gdb/cgdb使用、一些实用的调试技巧
2025-08-03 16:47:34
925
22
原创 【Linux】linux基础开发工具(二) 编译器gcc/g++、动静态库感性认识、自动化构建-make/Makefile
编译器gcc/g++、动静态库感性认识、自动化构建-make/Makefile
2025-07-31 20:12:20
668
11
原创 【C++详解】深入解析多态 虚函数、虚函数重写、纯虚函数和抽象类、多态原理、重载/重写/隐藏的对⽐
虚函数、虚函数重写、纯虚函数和抽象类、多态原理、重载/重写/隐藏的对⽐
2025-07-30 11:45:27
1066
20
原创 【C++详解】深入解析继承 类模板继承、赋值兼容转换、派生类默认成员函数、多继承与菱形继承
深入解析继承 类模板继承、赋值兼容转换、派生类默认成员函数、多继承与菱形继承
2025-07-28 20:38:48
984
17
原创 【C++详解】模板进阶 非类型模板参数,函数模板特化,类模板全特化、偏特化,模板分离编译
非类型模板参数,函数模板特化,类模板全特化、偏特化,模板分离编译
2025-07-25 20:34:44
833
17
原创 【Linux】linux基础开发工具(一) 软件包管理器yum、编辑器vim使用与相关命令
软件包管理器yum、编辑器vim使用与相关命令
2025-07-24 13:42:33
1242
19
原创 【洛谷】The Blocks Problem、合并两个有序数组,补充pair(vector相关算法题p2)
The Blocks Problem、合并两个有序数组
2025-07-21 09:58:06
785
16
原创 【Linux】权限详解 权限本质、权限属性、su、sudo提权、chmod\chown\chgrp、文件类别
权限本质、权限属性、su、sudo提权、chmod\chown\chgrp、文件类别
2025-07-20 15:46:26
2182
20
原创 【Linux】基本指令详解(三) 指令本质、三个查找指令、打包压缩、重要热键、linux体系结构、命令行解释器
指令本质、三个查找指令、打包压缩、重要热键、linux体系结构、命令行解释器
2025-07-19 08:24:25
1706
16
原创 【C++详解】STL-stack、queue的模拟实现,容器适配器,deque双端队列介绍
STL-stack、queue的模拟实现,容器适配器,deque双端队列介绍
2025-07-17 18:21:47
798
15
原创 【Leetcode】栈和队列算法题(逆波兰表达式、二叉树层序遍历、最小栈、栈的压入弹出序列)
逆波兰表达式、二叉树层序遍历、最小栈、栈的压入弹出序列
2025-07-17 08:49:04
997
14
原创 【Linux】基本指令详解(二) 输入\输出重定向、一切皆文件、认识管道、man、cp、mv、echo、cat
输入\输出重定向、一切皆文件、认识管道、man、cp、mv、echo、cat指令详解。
2025-07-16 10:23:42
1152
15
原创 【Linux】基本指令详解(一) 树状文件结构、家目录、绝对/相对路径、linux文件类型
树状文件结构、家目录、绝对/相对路径、linux文件类型
2025-07-14 13:08:57
1283
15
原创 【C++详解】STL-priority_queue使用与模拟实现,仿函数详解
STL-priority_queue使用与模拟实现,仿函数详解
2025-07-13 09:47:21
1197
18
原创 【C++详解】STL-list模拟实现(深度剖析list迭代器,类模板未实例化取嵌套类型问题)
本文将模拟实现STL-list,深度剖析list迭代器,从零到一实现迭代器过程,还会介绍一个常见问题类模板未实例化取嵌套类型的解决办法。
2025-07-10 10:51:40
1017
20
原创 【C++详解】STL-list使用(迭代器分类、三大特性之一封装详解、cpu高速缓存命中率)
本文将详细介绍有关STL容器list的使用相关接口,并补充说明三大特性之一封装、cpu高速缓存命中率相关知识。
2025-07-04 09:33:01
1234
19
原创 二叉树OJ题(单值树、相同树、找子树、构建和遍历)
本文将详细介绍二叉树OJ题如单值树、相同树、找子树、二叉树的构建和遍历等,一起来看看吧
2025-07-03 10:01:30
1090
10
原创 数据结构与算法------二叉树(前/中/后/层序遍历、求结点个数,高度,含递归展开图)
本文将介绍链式结构二叉树的前/中/后/层序遍历、求结点个数,高度等问题,一起来看看吧
2025-07-02 08:42:10
706
16
原创 数据结构与算法------堆(堆的实现、堆排序、TOP-K问题)
本文将详细介绍有关堆的实现、堆排序、TOP-K问题和代码实现,一起来看看吧~
2025-07-01 09:47:00
661
19
原创 C语言之文件操作详解(文件打开关闭、顺序/随机读写)
磁盘(硬盘)上的⽂件是⽂件。但是在程序设计中,我们⼀般谈的⽂件有两种:程序⽂件、数据⽂件(从文件功能的⻆度来分类的)。程序文件 程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows环境后缀为.exe)。数据⽂件 ⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。我们本文会着重介绍数据文件,在以前我们处理数据的输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显⽰到显⽰器上。
2025-06-30 11:48:38
1480
17
原创 【Leetcode】有效的括号、用栈实现队列、用队列实现栈
这道题两个栈分别承担不同的功能,一个pushst用来入数据,一个popst用来出数据,入数据时无需判断,直接pushst入栈就行了,出数据需要先判断popst是否为空,若不为空则popst出栈,若popst为空则需要先将pushst内所有数据导到popst,再将popst出栈,top思路和pop大致相同,只不过不用删除popst栈顶数据,其他接口和上一题类似,若读者感觉比较难想画一画图思路自然就有了。出栈要将不为空队列的前size-1个数据导入到另一个空队列,在将不为空队列剩余的一个数据出队列。
2025-06-23 20:39:24
993
15
原创 【C51】UART通信介绍&接受和发送单/多字节命令代码实现
UART(Universal AsynchronousReceiver/Transmitter)是一种异步、全双工的串行通信接口,常用于微控制器与计算机、其他微控制器或外部设备之间的数据交换,下图是UART通信所需的信号线,其中Tx用于发送数据,Rx用于接受数据。
2025-06-22 16:13:20
747
11
原创 【STM32】STM32的中断系统&寄存器NVIC、EXTI
在主程序运行过程中,出现了特定事件,使得CPU暂停当前正在运行的程序,转而去处理这个事件,等这个事件处理完成之后,CPU再回到刚才被打断的位置继续处理,这就是中断。那个打断CPU执行的特定事件,我们一般称之为中断源。被中断源打断的位置我们称为断点。处理特定事件的过程,我们称为执行中断处理程序。正在执行中断程序的时候,这个时候有可能被另外一个中断源给中断,CPU转而去执行另外一个中断源的中断处理程序,这叫中断嵌套。
2025-06-21 09:31:50
771
13
原创 【Leetcode】字符串之二进制求和、字符串相乘
两层for循环搞定无进位相加,我们要开一个动态数组vector来存放无进位相加的结果,动态数组大小为m + n -1,这里我们考虑极限情况,下面999*999得到的结果也只是五个数,所以用m + n - 1来存是完全足够的,下标的对应关系和我们之前分析的一样。得到的值t还要模2才能把值+=到字符串中,因为二进制加法逢二进一,注意还要把得到的值加’0‘得到字符1的ASCII码值,因为我们需要加的是字符1,再把t除二赋给t当作进位参与下一次加法运算。因为s一直的尾插,所以最后还要把s逆置一下得到结果。
2025-06-20 11:07:32
727
6
原创 【C++详解】STL-vector使用&底层剖析和实现
vector底层和string一样也是数组,类似数据结构我们介绍的顺序表。它和string的区别是string的元素类型只能是字符类型,vector有模板可以是任何任何类型,包括自定义类型。
2025-06-19 10:04:28
1055
10
原创 【Leetcode】位运算之只出现一次的数字I、III
按位或:| (有1则为1)按位与:&(有0则为0)按位异或:^(相同为0相异为1 无进位相加)
2025-06-16 09:51:09
916
10
原创 【C++详解】STL-手把手教你string底层模拟实现
这里我们提前创建一个128个字符大小的字符数组(这个数字随意),用它作缓冲,它是在栈上开空间所以效率很高,每提取一个字符都想放到字符数组中,当i到126时已经提取了127个字符数据了,所以在i等于127时在127位置放一个’\0’,再将字符数组+=到str中,这样+=一次就只会扩容一次。vs为了提高效率,在string里还开了一个数组buff,当size<16时,数据就直接存在对象的栈空间buff数组里,当size>=16后,就把buff的数据转移到_str指向的堆的数组空间里。
2025-05-27 17:38:29
1040
21
原创 【C++详解】STL-string各种接口如何使用保姆级攻略
在学习string之前我们要先了解string其实诞生的比STL早,所以从发展历史角度来看你它应该归于标准库,但是从广义来看它又应归于STL,因为它也是数据结构,它也有STL的各种通用接口。从这里我们可以看到我们要学习的string是属于C++标准库的类,并且是经过类模板实例化的具体类型,本质上可以看作的管理char字符的顺序表,也可以简单理解成字符串。注意: 1、要使用string需要using namespace std和包string头文件。
2025-05-17 13:35:37
1598
19
原创 【C++详解】类和对象(上)类的定义、实例化、this指针
class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前面或者后面加_ 或者 m开头,小编一般会在成员变量前面加_。C++中struct也可以定义类,C++兼容C中struct的⽤法,同时struct升级成了类,明显的变化是struct中可以定义函数,⼀般情况下我们还是推荐⽤class定义类。
2025-05-13 11:32:24
1252
15
原创 【C++详解】C++入门(二)引用、内联函数、nullptr宏
C++祖师爷为了优化在部分场景中使用指针会出现的效率较低和比较复杂的情况,引入了一个新概念——引用。引用不是新定义一个变量,而是为已经存在的变量取别名,编译器不会为引用变量开辟空间,它和它引用的变量共用一块空间,通俗来说就是为一个变量取别名,虽然叫法不同,变量的不同的别名还是指代这个变量本身,也就是你的正式名字和你的外号都是你本身,引用用法如下:类型& 引用别名 = 引用的对象;//引用:b和c是a的别名int& b = a;
2025-04-27 21:24:59
1404
25
原创 【C++详解】C++入门(一)命名空间、缺省参数、函数重载
缺省参数是声明或定义函数时为函数的参数指定一个缺省值,在函数调用时,如果参数对应位置没有传实参则用该缺省形参当实参,否则使用传过去的实参,缺省参数分为全缺省和半缺省参数。
2025-04-20 20:17:24
1322
18
原创 数据结构与算法------队列
我们知道栈的底层是用数组实现的,那么队列该用链表还是数组来实现呢?首先排除双向链表,它一个结点有三个成员,空间消耗太大。然后我们知道单链表的头部操作时间复杂度为O(1),尾部操作的时间复杂度为O(N),因为要遍历找尾。数组尾部操作时间复杂度尾O(1),头部操作因为要将元素向前挪一位所以时间复杂度为O(N),我们可以发现这两种底层实现都无法将队列的插入删除操作时间复杂度降到最低,那我们就将这两种方法进行改良,比如定义一个链表尾节点ptail,但是数组改良小编还目前没想到好的方法。
2025-04-13 14:15:22
1053
19
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人