- 博客(83)
- 收藏
- 关注
原创 【unordered_set和unordered_map】—— 我与C++的不解之缘(二十七)
unordered_set和unordered_map
2025-03-22 18:22:17
1076
37
原创 【C++】 —— 笔试刷题day_5
第二种它们都有一个共同的思路,就是将问题一步一步划分,然后寻找子问题的关系;让我们求出需要多少分钟,会导致所有的苹果变腐烂;(如果有苹果一直不会腐烂,就返回。其中,腐烂的苹果每分钟都会向四周(上下左右)传播病菌,相邻的苹果都会腐烂。读懂了题目,现在来看如何去实现这个算法(这里简述一下)这样我们就可以知道如何去求最大得分了,(腐烂的苹果)都存放到一个队列当中;的网格,其中每一个格子有三种情况(所以,这里先遍历给的数组,让所有的。这样最多的得分就可以表示出来了;以此类推,我们就可以直接推出来有。
2025-03-15 00:40:18
924
36
原创 深入了解Linux —— 调试程序
我们已经学习了linux下许多的工具,vimgcc等;已经能够在linux写代码,并且进行编译运行,让程序在linux下跑起来。但是,如果我们在写代码的时候遇见了错误;但是我们并不知道错误在哪,在windows下,我们可以进行调试来查找代码错误的位置进行修改;我们在linux就只能查看源代码,直接查找错误,这样很麻烦;现在就来学习linux如何调试程序。
2025-03-09 22:11:00
1284
22
原创 【异常】—— 我与C++的不解之缘(二十四)
异常,这个十分陌生的名词;试想一下,在我们之前写代码的过程中,程序运行出现了一些问题(就比如AVL树更新平衡因子的过程中,平衡因子出现了不可能的现象,这说明这个AVL树存在问题;)但是我们之前只是单纯的让程序终止,但是在以后的实践中,程序是一直运行的,所以我们不能直接将程序直接终止。
2025-03-01 17:38:24
900
24
原创 【map与set】—— 我与C++的不解之缘(二十二)
在前面的学习中,已经接触过了stringvectorliststackqueue等容器,现在了解set与map容器的使用本篇只来了解set和map的使用;(其底层为红黑树,在后面再详细学习)
2024-12-23 18:50:49
1450
36
原创 我爱学算法之—— 感受双指针带来的快感(下)
通过学习双指针算法,明显能够感受到双指针算法的优势和其适用场景首先,就是能够在暴力解法的基础上,将时间复杂度降低一个维度;其次,双指针算法就适合在数组划分和数组有序时使用;最后,双指针算法使用起来十分便捷;还是非常重要的。我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?
2024-12-13 13:04:46
1692
37
原创 深入了解Linux —— 理解gcc编译器
学习了vim编辑器,我们能够在Linux下写代码,那我们如何让代码运行起来呢?现在就来学习使用gccgcc。
2024-12-13 13:04:19
1479
58
原创 【搜索二叉树】—— 我与C++的不解之缘(二十一)
搜索二叉树又叫做二叉排序树,它可以是一颗空树,或者是具有以下性质的树在搜索二叉树中,可以支持插入相同的值,也可以不支持插入相同的值;在mapsetmultimapmultidset等系列式容器底层就是搜索二叉树,其他mapset不支持数据冗余(不支持插入相同的值);multimapmultiset支持数据冗余。
2024-12-08 17:25:44
1159
35
原创 【多态】—— 我与C++的不解之缘(二十)
通俗一点,多态就是多种形态;多态它又分为编译时动态和运行时多态。 多态是一个继承关系下的类对象,去调用同一个函数,产生不同的行为。
2024-12-08 17:24:40
1702
39
原创 深入了解Linux —— 学会使用vim编辑器
vim 是一款常用的文本编辑器,特别适合在Linux和Unix操作系统下进行程序开发、系统管理等工作。使用 vim 可以高效地编辑各种类型的文件,例如代码文件、配置文件等。在Linux系统中,大部分配置文件都是ASCII的纯文本形式存放的,因此使用vim进行编辑是非常方便和实用的。在Vim之前呢,使用Vi;Vim可以说是Viplus版本;Vim和Vi都是多模式编辑器,不同的是Vim相比于Vi有一些新的特性,语法加亮,可视化操作、不仅可以在终端运行,也可以运行于windows、macOS等。
2024-12-06 18:28:38
2245
69
原创 了解Linux —— 理解其中的权限
什么是权限,这个就字面意思,哈哈。在Linux下,有两种用户:一是超级用户(root)、二是普通用户。超级用户(root可以再Linux系统下做任何事情,不受限制在Linux下受到权限的限制,只能做部分事情超级用户的命令提示符是,普通用户的命令提示符是root。
2024-11-30 23:48:05
1599
42
原创 【继承】—— 我与C++的不解之缘(十九)
继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段,它允许我们在保持原有类特性的基础上进⾏扩展,增加⽅法(成员函数)和属性(成员变量),这样产⽣新的类,称派⽣类。继承呈现了⾯向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复⽤,继承是类设计层次的复⽤。简单来说,对于两个类(甚至多个),它们直接有一些相同的成员;这样设计是有些冗余的。public:void studying() {} //学习。
2024-11-30 23:48:00
3801
69
原创 【模版进阶】—— 我与C++的不解之缘(十八)
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式【优点】**模板复用了代码,节省资源,更快的迭代开发,**C++的标准模板库(STL)因此而产生增强了代码的灵活性【缺陷】模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误简单来说模版是可以声明和定义分离的(将声明和定义放到一个文件xxx.hpp里面或者xxx.h其实也是可以的。
2024-11-24 11:40:10
2008
63
原创 初识Linux—— 基本指令(上)
Linux是一种开源、自由、类UNIX的操作系统,由著名的芬兰程序员林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。Linux的内核在GNU通用公共许可证(GPL)下发布,这意味着任何人都可以自由使用、修改和分发它。因此,Linux逐渐发展成为由全球社区贡献者、开发人员和公司支持的操作系统。:用户可以自由获得、修改和分发源码。:支持多个用户同时操作和执行多个任务。:Linux因其强大的内核和良好的权限管理,具有较高的稳定性和安全性。
2024-11-17 13:40:35
2620
71
原创 【priority_queue的使用及模拟实现】—— 我与C++的不解之缘(十六)
priority_queue,翻译过来就是优先级队列,但是它其实是我们的堆结构(如果堆一些遗忘的可以看一下前面的文章复习一下),本篇文章就来使用并且模拟实现一下priority_queue。
2024-11-17 13:40:21
1184
35
原创 【stack和queue的模拟实现】—— 我与C++的不解之缘(十五)
stack和queue使用起来都非常简单,现在来模拟实现一下,理解其底层的原理。 在实现之前,应该知道,stack和queue都是容器适配器,通过看官网文件也可以看出来;其默认的容器都是deque(双端队列)。stack和queue都是在容器的基础上进行了封装,实现了各自的操作。(在下面的实现中stack默认容器用vectorqueue默认容器用list。
2024-11-16 21:43:18
1851
53
原创 【list的模拟实现】—— 我与C++的模拟实现(十四)
insert在指定位置插入数据,看它的参数列表,大概就知道,要在迭代器position 迭代器位置(之前)插入数据(1个或者n个),或者插入一段迭代器区间的数据。 既然原生指针不能满足我们的需求,那我们就要用其他的方法来实现迭代器,这时候类的封装的意义就体现出来了; 这里遍历链表来计算数据个数,代价太大了,我们直接写一个成员变量,在初始化,插入和删除时修改,会方便很多。 在我们删除节点之后,之前的迭代器就会失效,为了解决迭代器失效问题,我们就使用返回值,返回新的迭代器。
2024-11-16 21:37:04
701
22
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人