- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 C++ 字符串操作以及序列化和反序列化
序列化和反序列化是编程中常见的概念,在数据存储、网络传输和进程间通信中。序列化:将数据结构或对象转换为可以存储或传输的格式(如字符串、字节流)反序列化:将序列化后的数据恢复为原始的数据结构或对象。
2025-09-12 05:10:05
256
原创 C++STL系列-04. list和forward_list
splice_after() - 移动元素从一个链表到另一个。before_begin() - 返回第一个元素之前的位置。insert_after() - 在指定位置后插入元素。erase_after() - 删除指定位置后的元素。push_front() - 在首部添加元素。pop_front() - 删除首部元素。merge() - 合并两个有序链表。reverse() - 反转链表。sort() - 排序。
2025-09-11 16:41:45
361
原创 C++ STL系列-03.vector,array
需要动态大小使用vector,大小在编译时已知且固定时用 array(它比 C 风格数组更安全,提供了size()、边界检查at()等)。
2025-09-11 11:10:13
367
原创 C++ STL系列-02.泛型入门
模板允许我们编写与类型无关的代码,是一种将类型作为参数进行编程的方式。在上面的代码中,template 告诉编译器这是一个模板,T 是一个占位符类型。当我们调用 max 函数时,编译器会根据传入的参数类型自动生成特定类型的函数。函数模板允许我们定义一个函数,它可以接受多种类型的参数。例如,我们可以写一个比较两个值大小的函数模板,而不是为每种类型都写一个重载函数。类模板允许我们定义一个类,其成员的类型可以由模板参数指定。例如,我们可以定义一个简单的Box类,用来存储任意类型的值。
2025-09-06 22:30:42
325
原创 使用C++17标准编写一个 记账系统
添加收入:选择选项1,输入金额和描述。添加支出:选择选项2,输入金额和描述。添加存款:选择选项3,输入金额和描述。添加负债:选择选项4,输入金额和描述。清除数据:选择选项10(谨慎使用)查看财务状态:选择选项5。查看今日交易:选择选项6。查看今日收入:选择选项7。查看今日支出:选择选项8。保存数据:选择选项9。退出系统:选择选项0。
2025-08-10 13:19:40
344
原创 LeetCood算法题~水果成篮
1. 使用两个指针left和right表示窗口的左右边界,初始时都指向数组的起始位置。2. 使用一个哈希表(或者数组,因为题目说明fruits[i]的范围,但为了通用性,这里用哈希表)来记录当前窗口内各种水果的出现次数。3. 右指针right不断向右移动,将遇到的水果加入窗口(即更新哈希表)。4. 当窗口内水果种类超过2种时,移动左指针left,直到窗口内水果种类减少到2种(每次移动左指针,将左指针指向的水果从哈希表中移除,如果该水果数量减为0,则从哈希表中删除该种类)。
2025-08-05 22:58:33
877
原创 数据结构~17.图结构的操作
数据结构~17.图结构的操作本文是上一篇文章的后续,详情点击该链接~ 上一章主要是理论,那么这一章直接进入实战创建结构体#define MaxNum 20 //图的最大顶点数#define MaxValue 65535 //最大值typedef struct { char Vertex[MaxNum]; //保存顶点信息 int GType; //图的类型 0 无向图 1 有
2020-12-19 13:39:59
14673
27
原创 数据结构~16.图的基本概念和存储结构
线性化二叉树本文是上一篇文章的后续,详情点击该链接~前言 在上一篇文章里面,我们使用了自定义的栈来代替了系统栈,通过循环实现了二叉树的遍历,提升了效率。其实,我们还有一种方法可以使效率变得更加快捷。甚至连用户自定义的栈都可以省掉。那就是,把二叉树的遍历过程给线性化,进一步的提高效率。 对于二叉链表的存储结构,n个结点的二叉树有 n + 1
2020-08-14 20:47:13
34651
22
原创 数据结构~15.使用自定义的栈来优化二叉树的遍历
使用自定义的栈来优化二叉树的遍历本文是上一篇文章的后续,详情点击该链接~前言 在前面遍历二叉树的操作里,基本上都是使用递归实现的,因为递归解决问题的方式会相对循环来说要更加简单一些。但是我们要知道,对于计算机而言,却未必如此。递归的缺点 递归的优点,想必在之前也已经体会到了。使用递归解决问题,往往思路清晰,简单易懂。但是我们要知道,递归
2020-08-12 18:44:15
37227
49
原创 数据结构~12.树与二叉树
数据结构学习~12.树本文是上一篇文章的后续,详情点击该链接~树的基本概念 树是一种非线性的数据结构。要理解树的概念及其术语的含义,用一个例子说明是最好的方法。就比如下图就是一棵树,它是若干节点的集合。是由唯一的根(A)和若干互不相交的子树。就比如说,A,D,H,M,I,J这六个结点组成的树就是一颗子树组成的。其中,每一棵子树又是一棵树,也是由唯一的根结点和若干棵互不相交的子树组成的。由此而知,树的定义是递归的,也就是在
2020-08-04 20:12:29
34270
34
原创 数据结构~11.串
数据结构学习~11.串本文是上一篇文章的后续,详情点击该链接~串的基本定义 串是由零个或者多个字符组成的有序序列。串中字符的个数称为串的长度,含有零个元素的串叫空串。 //这就好比一个名为str的串 char str[] = "today is greate day"; 串中任意连续的字符组成的子序列称为该串的子串,包含子串的串称为
2020-08-02 09:45:52
33232
54
原创 数据结构~10.顺序队和链队
数据结构学习~10.顺序队和链队本文是上一篇文章的后续,详情点击该链接~顺序队循环队列 在顺序队中,通常让队尾指针rear指向刚进队的元素位置,让队首指针front指向刚出队的元素位置。因此,元素进队的时候,rear要向后移动:元素出队的时候,front也要向后移动。这样经过一系列的出队和进队操作以后,两个指针最终会达到数组末端MAXSIZE - 1 处。虽然队中已经没有元素,但仍然无法让元素进队,这就是所谓的 "假溢
2020-07-30 20:16:09
34175
19
原创 数据结构~07.栈和队列的基本概念
数据结构学习~07.栈和队列的基本概念本文是上一篇文章的后续,详情点击该链接~栈的定义: 栈是一种只能在一端进行插入或删除的线性表。其中,允许插入或删除的一端为栈顶(TOP)。栈顶由一个称为栈顶指针的位置指示器来指示。它是动态变化的...
2020-07-28 08:26:32
33284
23
原创 数据结构~06.关于线性表的两个案例
数据结构学习~06.关于线性表的一些算法本文是上一篇文章的后续,详情点击该链接~题目1: 设顺序表用数组arr[ ]表示,表中元素存储在数组下标0~m+n-1的范围内,前 m 个元素和后 n 个元素都递增有序,设计一个算法,使整个顺序表有序。 关于这道题,我们先假设元素是int类型。将数组 arr 中的 m + n 个元素看成是两个顺序表
2020-07-24 08:07:19
33557
18
01.Java设计模式之 单例模式.pdf
2020-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅