- 博客(56)
- 收藏
- 关注
原创 Linux 动静态库
库其实是给我们提供方法的实现,如上面的对于printf函数的实现就是在库中实现的,而这个库也就是c标准库,本质也是文件,也有对应的路径。方法的实现就在库当中,库就是将源文件(.c)经过一定的翻译,然后打包,封装然后只提供一个所需的文件,而将其他源文件隐藏。编译器使用静态库进行静态链接时,会将静态库的所有方法实现拷贝到可执行程序中,使该程序不再依赖静态库。由于gcc编译时默认使用的是动态库,完成的是动态链接,如要实现静态链接就要添加-static。1.如果我们没有静态库,但就要-static ,是不行的。
2024-07-24 20:47:01
502
原创 C++ 继承
继承是面向对象程序设计使代码可以复用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类或者子类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。public:protected:// 姓名// 年龄protected:int _stuid;// 学号protected:int _jobid;// 工号int main()Student s;Teacher t;s.Print();t.Print();
2024-03-20 16:28:13
765
原创 Leet code 238 除自身以外的数组的乘积
从后向前遍历然后创建ret数组 每个位置遍历一遍 ret[i] = dp[i] * bp[i]
2024-03-19 23:34:23
306
原创 Leet code 91 解码方法
相当于在i-2位置加上了一段所以次数和dp[i-2]相同。相当于在d[i-1]上接了一段 但次数肯定是没变化的。组合解码需要的范围是10-26 不然就是失败。再考虑i位置和i-1位置能否组合解码。
2024-03-17 00:58:43
356
原创 Leet code 438 找到字符串中所有字母异位词
三步走 进窗口 判断 出窗口 然后更新结果 定义两个hash表在第一个表中存 p的有效字符 比如 abc a一个 b一个 c一个 这样就存在三个有效字符 在第二个hash表中进行滑动窗口的运行 定义一个常量count 如果滑动窗口中有效字符存在一个就 +1 第二个hash表中 进窗口时候怎么才能算有效字符呢? hash2[s[right] -'a'] <=hash1[s[right] -'a'] 这个时候 count++这个条件就是滑动窗口中比如a 有 1个 或者2个 3个等
2024-03-16 00:11:34
565
原创 Leet code 746 使用最小花费爬楼梯
首先理解题意:什么是到达楼顶,这楼顶是指数组cost最后一个元素的下一个位置所以需要创建一个元素个数为cost.size()+1的dp数组 然后记录到达每一个位置的最小花费下标0 和 1位置是起点 到达 i 位置的最小花费这个i需要从下标为2开始算到达i位置的最小花费方程 dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2])dp[0] 和 dp[1]默认为0 因为是0 1下标位置是起点之前没有任何叠加最后返回结果 dp[ cost.size() ]
2024-03-14 23:29:25
483
原创 Leet code 1089 复写0
比如示例1中答案的最后一个数是4定义两个指针 dest 和 curdest初始位置是-1 cur初始位置为 0如果arr[cur]为非零元素 dest位置+1如果arr[cur]为零元素 dest位置+2直到cur<arr.size() 或者 dest>=arr.size()-1cur就是最后一个元素位置。
2024-03-05 16:33:22
370
原创 C++ list 详解
C++ 中的 list 是一种双向链表,它提供了许多有用的操作,如插入、删除、查找和修改元素等。在 C++ 中,list 是一个模板类,用于存储同类型的元素。:可以使用构造函数创建和初始化 list 对象。方法删除指定位置的元素。方法查找指定位置的元素。的末尾或开头添加元素。是一个模板参数,用于指定。:可以使用迭代器遍历。
2023-12-03 19:37:20
431
原创 C++ priority_queue
Priority Queue(优先队列)是一种常用的数据结构,它基于每个元素关联的优先级而组织元素,确保高优先级的元素先被处理。在实际应用中,优先队列常用于解决与优先级相关的问题,如任务调度、图算法等。如果要使用自定义的比较函数来定义优先级,可以通过提供一个自定义的比较函数或使用 lambda 表达式。// 自定义比较函数// 最小堆return 0;
2023-12-03 19:10:31
124
原创 C++ vector基本用法
在C++中,vector是一种动态数组,可以根据需要自动增长和缩减其中,type表示元素类型,name是vector的名称。初始化vector的方法很简单,只需要在括号中提供一些初始化值即可:在上述代码中,我们定义了一个名为v的vector,并初始化了它为包含5个整数的数组。
2023-12-03 18:50:36
273
原创 Linux 中的yum命令讲解
yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
2023-10-18 21:21:49
209
原创 C++ 构造函数和内联函数
一个特殊的成员函数名字与类名相同,创建类类型对象时由编译器自动调用并且在对象整个生命周期内只调用一次构造函数的功能是用来完成对象的初始化的。
2023-09-15 22:38:56
154
原创 数据结构之队列(C语言)
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(head)进行删除操作,而在表的后端(tail)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队尾进入队头出列typedef struct QListNode //链式结构,表示队列//储存下一个结点地址//储存数据}QNode;typedef struct Queue //队列结构//储存头节点地址//储存尾结点地址int size;}Queue;
2023-09-15 21:03:02
54
原创 C++入门篇
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字然后接一对{}即可,{}中即为命名空间的成员。函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。
2023-09-10 13:42:02
41
原创 【C语言】循环语句 while、for、do-while
何为循环?。接下来我将对其三种循环做出解释。上述三种循环语句的使用频率从大到小依次是:结束语:如果觉得up主写的不错,不要忘了素质三连哦。
2023-04-23 16:21:26
484
4
原创 【数据结构】顺序表之增删查改操作(C语言)
目录1.头部插入(SLpushfront)2.尾部删除(SLpopback)3.头部删除(SLpopfront)4.指定位置插入数据(SListInsert)5.指定位置删除数据(SLdelete)6.查找数据(SLFind)7.修改数据(SLModify)插入前我们调用容量检测函数对容量进行检测,函数内部已经写好了增容的程序。 那么插入数据就要挪动数据,尾插是从前向后挪动数据,那么头部插入就是从后向前挪动数据,也就是开辟空间后,将新添加的数据从顺序表头部向前移动。我们直接将size所再的位置减1即可
2023-04-22 21:10:40
752
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人