五花肉村长
码龄1年
关注
提问 私信
  • 博客:54,979
    54,979
    总访问量
  • 58
    原创
  • 23,858
    排名
  • 622
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:流水不争先,争的是滔滔不绝。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:吉林省
  • 加入CSDN时间: 2024-03-14
博客简介:

2401_83575662的博客

博客描述:
流水不争先,争的是滔滔不绝。
查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    485
    当月
    55
个人成就
  • 获得866次点赞
  • 内容获得23次评论
  • 获得658次收藏
创作历程
  • 58篇
    2024年
成就勋章
TA的专栏
  • C++
    13篇
  • 数据结构
    16篇
  • C语言
    24篇
  • Linux
    5篇
兴趣领域 设置
  • 编程语言
    pythonc++c语言开发语言
  • 开发工具
    githubgitvisual studiovscode
  • 数据结构与算法
    算法数据结构线性回归链表贪心算法动态规划排序算法kmeansleetcode决策树最小二乘法b树模拟退火算法散列表随机森林支持向量机启发式算法逻辑回归推荐算法宽度优先广度优先深度优先迭代加深图搜索算法爬山算法近邻算法均值算法预编码算法霍夫曼树剪枝哈希算法柔性数组skiplisthash-indexsstablelsm-treeinverted-indexsuffix-treer-tree
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++ 模版(进阶)

一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有 目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。优点:1. 模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生2. 增强了代码的灵活性缺点:1. 模板会导致代码膨胀问题,也会导致编译时间变长2. 出现模板编译错误时,错误信息非常凌乱,不易定位错误。
原创
发布博客 2024.11.19 ·
621 阅读 ·
27 点赞 ·
0 评论 ·
25 收藏

C++ stack 和 queue

queue的文档介绍翻译:1. 队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元 素,另一端提取元素。2. 队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供 一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。3. 底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器应至少 支持以下操作:empty:检测队列是否为空size:返回队列中有效元素的个数front:返回队头元素的引用。
原创
发布博客 2024.11.19 ·
1056 阅读 ·
22 点赞 ·
0 评论 ·
26 收藏

C++ list

因为list的底层结构为带头结点的双向循环链表,因此在list中进行插入 时是不会导致list的迭代器失效的,只有在删除时才会失效,并且失效的只是指向被删除节点的迭 代器,其他迭代器不会受到影响。通过前面例子知道,反向迭代器的++就是正向迭代器的--,反向迭代器的--就是正向迭代器的++, 因此反向迭代器的实现可以借助正向迭代器,即:反向迭代器内部可以包含一个正向迭代器,对 正向迭代器的接口进行包装即可。此处,大家可暂时将迭代器理解成一个指针,该指针指向list中的某个节点。
原创
发布博客 2024.11.18 ·
316 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

C++ vector

迭代器是一种封装的体现,屏蔽了底层的实现细节,提供了统一的类似访问容器的方式,不需要关心容器底层结构和实现细节,底层类似于指针但实际上不是指针,不是所有的容器的迭代器都是原生指针,容器的底层有的是数组有的是链表,物理结构上有的不连续,指针解引用也不是真实值。
原创
发布博客 2024.11.07 ·
600 阅读 ·
29 点赞 ·
0 评论 ·
13 收藏

C++ String

C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列 的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户 自己管理,稍不留神可能还会越界访问。在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、 快捷,基本都使用string类,很少有人去使用C库中的字符串操作函数。
原创
发布博客 2024.11.03 ·
984 阅读 ·
26 点赞 ·
0 评论 ·
29 收藏

C++ STL

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的 组件库,而且是一个包罗数据结构与算法的软件框架。STL主要包括容器(Containers)、迭代器(Iterators)、算法(Algorithms)和函数对象(Function Objects)四个部分。这些组件可以相互协作,提供高效、灵活的数据处理功能。
原创
发布博客 2024.11.01 ·
614 阅读 ·
8 点赞 ·
0 评论 ·
20 收藏

C++ 模版(初阶)

类模板实例化与函数模板实例化不同,类模板实例化需要在类模板名字后跟<>,然后将实例化的 类型放在<>中即可,类模板名字不是真正的类,而实例化的结果才是真正的类。
原创
发布博客 2024.11.01 ·
325 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

C/C++内存管理

1. 调用operator new函数申请空间2. 在申请的空间上执行构造函数,完成对象的构造。
原创
发布博客 2024.11.01 ·
951 阅读 ·
19 点赞 ·
0 评论 ·
14 收藏

C++类和对象(下)

⽆论是否显⽰写初始化列表,每个构造函数都有初始化列表;⽆论是否在初始化列表显⽰初始化,每个成员变量都要⾛初始化列表初始化;const修饰的变量只有一次赋值初始化的机会,就是在它定义的时候,必须在定义的时候初始化,之后不能改变通俗的讲,声明是告诉我们有这个东西,定义是木已成舟,已经开空间了。声明的顺序也就是在内存当中从上到下存放的顺序。
原创
发布博客 2024.10.28 ·
609 阅读 ·
13 点赞 ·
0 评论 ·
25 收藏

C++类和对象(中)

默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类,我 们不写的情况下编译器会默认⽣成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最 后两个取地址重载不重要,我们稍微了解⼀下即可。其次就是C++11以后还会增加两个默认成员函数, 移动构造和移动赋值,这个我们后⾯再讲解。默认成员函数很重要,也⽐较复杂.我们要从两个⽅⾯ 去学习:• 第⼀:我们不写时,编译器默认⽣成的函数⾏为是什么,是否满⾜我们的需求。
原创
发布博客 2024.10.23 ·
802 阅读 ·
25 点赞 ·
0 评论 ·
17 收藏

C++ 类和对象(上)

• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省 略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或 者成员函数。• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_或者m 开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。
原创
发布博客 2024.10.22 ·
738 阅读 ·
27 点赞 ·
0 评论 ·
19 收藏

归并排序-加餐

我之前讲的一些常见的排序都是内排序,他们的排序思想适应的是数据在内存中,支持下标的随机访问。归并排序的思想不需要随机访问数据,只需要依次按序列读取数据,所以归并排序既是一个内排序,也是一个外排序。
原创
发布博客 2024.10.17 ·
318 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

快速排序-加餐

决定快排性能的关键点是每次单趟排序后,key对数组的分割,如果每次选的key基本都二分居中,那么快排的递归树就是一棵均匀的满二叉树,性能达到最佳。但是在实践中虽然不可能每次都是二分居中,但是性能也是可控的,但是如果每次选到最小或者最大值,就会划分成0和N-1个子问题,时间复杂度就会变成O(N^2),就比如数组是有序的就会出现这种情况。在之前相关的章节,我们用了三数取中随机选取key和小区间优化来解决这个问题,虽然解决了大多数问题,但是还是有一些场景没能解决,就比如数组中有大量重复的数据。
原创
发布博客 2024.10.16 ·
585 阅读 ·
29 点赞 ·
0 评论 ·
15 收藏

数据结构-排序2

1. 快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序2. 时间复杂度:O(N*logN)3. 空间复杂度:O(logN)4. 稳定性:不稳定1. 归并的缺点在于需要O(N)的空间复杂度,思考更多的是解决在磁盘中的外排序问题。2. 时间复杂度:O(N*logN)3. 空间复杂度:O(N)4. 稳定性:稳定。
原创
发布博客 2024.10.15 ·
975 阅读 ·
24 点赞 ·
0 评论 ·
19 收藏

数据结构-排序1

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排 序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不断地在内外存之间移动数据的排序。
原创
发布博客 2024.10.08 ·
1031 阅读 ·
27 点赞 ·
0 评论 ·
20 收藏

二叉树—相关结构

叶子结点:没有孩子的节点。
原创
发布博客 2024.10.07 ·
407 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

二叉树的遍历

先简单手搓一个二叉树,快速进入本次的操作学习。}BTNode;如图所示,一棵二叉树,上述代码并不是创建二叉树的方式,真正创建方式后序详解重点讲解。再看二叉树基本操作前,再回顾下二叉树的概念,二叉树是:1. 空树2. 非空:根结点,根结点的左子树、根结点的右子树组成的。
原创
发布博客 2024.10.07 ·
870 阅读 ·
22 点赞 ·
0 评论 ·
5 收藏

二叉树--堆

普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结 构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统 虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。
原创
发布博客 2024.10.04 ·
1085 阅读 ·
33 点赞 ·
0 评论 ·
12 收藏

树--二叉树

树是一种非线性的数据结构,它是由n(n>=0)个有限节点组成的一个具有层次关系的集合,它的外形像像一棵倒挂的树,根向上,叶子是向下的,所以我们称之为树。树有一个特殊节点,就是它的根节点,它的根节点是没有前驱节点的。除根结点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。所以,树是递归定义的。树的数据结构中,它的子树之间是不能有交集的,不然就破坏了树的结构,不是树了。
原创
发布博客 2024.10.03 ·
665 阅读 ·
19 点赞 ·
0 评论 ·
14 收藏

栈和队列的相互实现(C)

栈后进先出,队列先进先出,这里我们要用两个队列实现栈。LeetCode 225.用队列实现栈 (C语言,要自己造轮子,造个栈的结构出来)例如,队列先进数据是1234,然后出数据遵循栈的后进先出就是4321.
原创
发布博客 2024.10.02 ·
379 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏
加载更多