自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 21天学通C++——21函数对象

【代码】21天学通C++——21函数对象。

2025-01-24 23:42:37 315

原创 21天学通C++——11多态(引入多态的目的)

引入多态,允许动态绑定,当一个基类成员被声明为virtual时,并且在派生类中被重写,通过基类指针或引用调用该函数时,实际调用的函数是根据对象的实际类型来确定的,而不是指针或引用的类型。未引入virtual,在编译时,编译器根据指针的类型(Base*)来决定调用哪个函数,静态绑定行为。结果为Derived::function()结果为Base::func()

2025-01-18 23:25:22 220

原创 21天学通C++——9.6.4使用构造函数进行类型转换

即在DoSomething中编译器会默认构造一个新的对象,这与初衷违背,进行隐式转换。

2025-01-14 11:27:20 135

原创 21天学通C++——9.5复制构造函数

复制类对象时只是单纯的复制所有的值,如指针只会复制指针的大小,而不会再开辟同一空间大小的内存,即两个指针指向同一片内存空间。

2025-01-13 22:51:52 174

原创 21天学通C++第八章——指针

即如何理解,当ptr指向new1,使用完成以后未使用delete对new1所占用的空间释放,然后又将ptr=new2,则会产生内存泄漏,即new1未被释放的同时也没有指针指向,即产生内存泄漏。在使用完new申请内存之后,没有配套的delete,则之后会产生内存泄漏。(1)初始化指针变量,若不初始化则可能不具有访问权限,产生冲突。占用内存越多,系统运行越慢,内存泄漏会占用宝贵的内存资源。ptr中必须存放的是有效的内存地址,即*ptr为有效的数值。即在delete之后ptr变得无效,则就不能再使用它了。

2025-01-12 22:40:52 1378

原创 21天学通C++绪论

解释器:对代码进行解释并进行相应的操作的工具编译器:代码作为输入,进行编译操作生成目标文件的工具。

2025-01-10 22:51:35 254

原创 深度优先搜索

【代码】深度优先搜索。

2024-02-29 18:51:42 263

原创 原码反码补码、浮点数

数值具有正负两种符号,但是计算机仅由0和1两种状态构建而成,因此并没有专门用来表示正负号的原生方式,我们凭直觉设计就是挪用其中的一位来表示正负号,简单起见,如果我们用3位表达一个数值,这样的编码系统实际上能够表达的范围将会是: 首先,0的表示不唯一,出现了-0和+0其次(也是更重要的原因)它需要单独的硬件电路来确定正负号。即一个负数的二进制形式改为其绝对值部分按位逐位反转,称为 [ 一补码 ] (ones’ complement),举例来说,如果我们用3位表达一个数值, 十进制数值 -2 用反码表示是 10

2024-02-07 22:53:25 213

原创 Linux下库函数、静态库与动态库

库是二进制文件, 是源代码文件的另一种表现形式, 是加了密的源代码;是一些功能相近或者是相似的函数的集合体.

2024-02-06 22:42:41 778

原创 模拟队列相关练习

push xpopemptyquery现在要对队列进行 M 个操作,其中的每个操作 33 和操作 44 都要输出相应的结果。

2024-02-05 20:12:23 154

原创 模拟栈相关练习

push xpopemptyquery现在要对栈进行 M 个操作,其中的每个操作 33 和操作 44 都要输出相应的结果。

2024-02-05 19:48:44 255

原创 链表相关练习

注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…(3) “I k x”,表示在第k个输入的数后面插入一个数x(此操作中k均大于0)。(2) “D k”,表示删除第k个输入的数后面的数(当k为0时,表示删除头结点)。现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。(1) “H x”,表示向链表头插入一个数x。(2) 删除第k个插入的数后面的数;(1) 向链表头插入一个数;

2024-02-03 22:03:50 198

原创 Acwing802离散化

【代码】Acwing802离散化。

2024-02-02 22:05:13 192

原创 C++纯虚函数

c++中纯虚函数与java,c#等中的接口或抽象方法相同,实际上纯虚函数在我们基类定义一个没有实例化的函数,强制使子类实例化public:private:public:}//c++11之后新加的一种,用于检查virtual语法上是否有错我们在调用PrintName(p)函数时,我们通过虚函数的重写不论如何都只是输出“Cherno”,那么父类Entity的实例化对于我们来说就没有用,则我们可以设为纯虚函数则。

2023-01-07 16:01:18 270

原创 c++虚函数

虚函数在面向对象整个过程都非常重要!,虽然会带来内存以及性能上的损耗,但相对来说微乎其微。因为函数在类内部起作用,在调用时,我们通常会调用属于该类型的函数(方法)!这就用到虚函数virtual,有一种动态联编实现,用于子类对父类的方法重写。虚函数允许我们在子类中重写方法!但是建议不要反着来,容易出问题。

2023-01-07 11:02:40 146

原创 ToCharArray()

将字符串改为字符串数组,可以逐一输出。

2023-01-03 20:59:39 386

原创 charAt的用法

在JAVA中,将字符串中的给定索引处返回char值在JAVA中的String不像c++中的string比如:C++中定义string s=“abc”;s[0]=='a';JAVA中定义String S=“abc”;S[0]!='a';而JAVA中charAt的作用就是把让S[0]==‘a’

2023-01-03 20:36:03 839

原创 Linux实用操作

Cpu:Cpu使用率、us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id :空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,st:强制等待占用CPU率。· .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的组装。· 公认端口:1~1023,通常用于一些系统内置或知名程序的预备使用,如SSH服务的22端口,HTTPS服务的443端口。

2022-12-29 22:16:53 1041

原创 Linux用户和权限

目录认知root用户了解什么是root用户(超级管理员)掌握用户切换命令su和exit命令:演示:掌握sudo命令演示:用户、用户组管理理解用户、用户组的概念:掌握用户、用户组管理的相关命令:演示:演示: 用户管理:演示:getent命令:信息表示:演示:查看权限控制掌握查看Linux文件的权限管控信息:掌握读、写、执行三种权限的含义:认知权限信息: rwx的含义:修改权限控制 - chmod掌握使用chmod修改权限信息:掌握使用数字序号标记权限:举例:修改权限控制 - chown掌握使用chown修改所

2022-12-24 13:37:01 621

原创 Linux的基础命令

Linux的目录结构是一个树形结构,不同于Windows拥有多个盘符,如C、D、E盘,Linux系统只有一个根目录('/'),所有文件均在它的下面。· 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用“ ”,将关键字围起来。· 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以。· 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在。· 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口。

2022-12-20 16:59:28 1652

原创 印章、拿金币、数字游戏

深度遍历,利用回溯算法求解即可,注意第一次找到的即为最小字典序,找到直接返回,若没有满足则不输出,样例5即为找不到满足的条件,即不输出。明确dp[i][j]在使用中i、j、dp的含义,始终抓住这个含义,不要弄混,在这里我将i弄成物品种类,j弄成背包容量,dp为概率。在写本题时,切记不能用局部最优解,然后每到一个点,求它是从上面路径过来拿的金币多还是下面,递推公式这就出来了。

2022-12-10 22:56:20 421

原创 完美的代价、矩形面积交、矩阵乘法、分解质因数

采用局部最优解思路(又称贪心思想),从尾部寻找能与头部元素能匹配的第一个,然后直接移动到最后,使得这两个字母对称,以此类推。利用矩阵的性质相乘即可,三层循环相乘,因为每一层需要计算n次,顺便对0次阶特判一下即可。利用交集性质直接求解即可,即最小值大于最大值并且最大值大于最小值。本题数量级1e4,暴力求解即可,质因数的常规求解。

2022-12-08 22:04:40 297

原创 数据结构——排序

其实就是特殊的完全二叉树。

2022-12-01 22:10:52 236

原创 数据结构——查找

折半查找:进行加法与除法的运算插值查找:进行复杂的四则运算斐波那契查找:最简单的加减法运算在海量数据前,这些细微的运算差距可能会影响最终的效率,视情况选择对于二叉排序树而言,因为是以链表的方式存储,即插入和删除的时间性能比较好但对于查找而言,比较看重二叉树的形状,故引申出如何让二叉排序树平衡的问题通过关键字,不需要比较就能获得需要记录的存储位置,这就是一种新的技术——散列技术散列技术是在记录的存储位置和他的关键字之间建立一个确定的对应关系,通俗讲类似于函数F(x)=x;

2022-11-30 23:36:56 1494

原创 7-4 (小字辈) 7-5 (列出叶结点) 7-6 (顺序存储的二叉树的最近的公共祖先问题)

对于树的问题而言,解决问题的首要问题是对于树的重建重建而言,你可以选择用数组下标与值串联起来的方式,即类似于并查集合并的方式也可以选择用结构体指针的方式重建,相对而言没有纯数组实现的方式运算速度快。

2022-11-26 22:12:27 377

原创 还原二叉树(求高度并输出二叉树)

【代码】还原二叉树(求高度并输出二叉树)

2022-11-25 10:36:54 1451

原创 7-7 字符串关键字的散列映射(及map的基本使用方法)

map是STL的一个关联容器,它提供一对一的hash包含在头文件#include其中key为索引值,可以近似认为就是相当于数组的下标,value相当于值(其实理解起来应该是key存在了value的位置)下面介绍map函数的几种用法1、查找元素即查找关键key出现时,它返回数据所在对象的位置while(iter!=mp.end()){}2、map的大小3、map的基本操作函数(只列举了几个)mp.clear();//删除所有元素mp.count();

2022-11-21 19:17:37 562

原创 7-6 天梯地图(写完这题我对于最小生成树和最短路的理解)

目前我写最小生成树问题涉及到的算法有(prim、kruskal),然后作业中遇到最短路问题我用的是dijkstra算法,我发现prim算法和dijkstra算法在代码格式上极为相似,以至于我思考了许久两种核心代码既然一样,为什么是两种问题,后来我发现两种代码虽然极为相似,但是最短路问题在初始化方面要求得更加细化,相较于(在写最短路时,把距离更新为无穷大,然后循环把与起点连接的点的距离更新,然后再进行n-1次循环进行更新点。的“距离最短”指的是一个点距离集合的最短,备选的最短是集合中所能有通路的点,

2022-11-20 21:58:10 728 2

原创 7-3 任务调度的合理性

如第四行2 1 2意思为想要完成第三个任务,需要先完成任务1 2。给定N个任务,然后N行依次为1..2..3...N任务。每一行第一个数代表有几个需要依赖的子任务。然后理解题意后,将题目抽象为拓扑排序即可。即完成给定的子任务才能完成本次任务。

2022-11-18 20:25:38 279

原创 7-4 公路村村通

prim函数体中,外层循环从1还是0开始都行,只不过第一次循环是确定第一个点并且更新通过第一个点下一个离集合s最近的一个点。从策略上看,prim算法是多次寻找权重最小的边,而kruskal算法先排序权重再寻找。所以在第一次循环时需要加上特判,防止判断无法连通出错。通过并查集然后排序权重从小到大,依次遍历即可。效率上看,kruskal的时间效率更高。

2022-11-18 14:43:54 457

原创 图的存储结构

图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组存储图中的边或弧的信息。

2022-11-16 15:40:53 808

原创 试题 基础练习 FJ的字符串(蓝桥杯)

然后返回A到第二层,第二层加上char(n-1+'A'),然后递归后面的函数返回A。会发现,前者和后者的dfs函数返回的值是对称的。用循环实现,即找到规律,用三个字符串数组连接。用递逆向归实现,即递归到底时返回1。当n递归到第一层时,返回A。然后返回第三层“ABA”.......以此类推。

2022-11-15 21:52:44 134

原创 郑轻新生周赛(4)

通过将用三个数组,一个数组用于记录字母,一个用于记录数目,一个用于记录前两个数组和并后大小的位置。字母数量少的先输出,定义一个结构体,将字母与出现的次数绑定,然后排序输出即可。多实例,用两个数组,一个用于记录输入的值,一个用于记录值得个数。用前缀和将D的每段数目存储起来,然后用l,r来维护一端序列。

2022-11-15 17:55:48 384 2

原创 树——基础知识认知

线性表是一对一的关系,而树结构是一种一对多的关系。树:树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一课非空树中:(1)有且仅有一个特定的称为跟(Root)的结点;(2)n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,....Tm,其中每一个集合本身有时一棵树,并且称为根的树(SubTree)树的定义其实就是我们在讲解栈时提到的递归方法。也就是在树的定义之中还用到了树的概念,这是一种比较新的定义方法。子树T1和子树T2就是根结点A的子树。

2022-09-20 16:31:54 344

原创 数据结构——串(基础知识)

例如:s=“happen”,t=“happy”,因为前四个字母均相等,而两串第五个字母(k值),字母e的ASCLL码是101,而字母y的ASCLL码是121,显然e

2022-09-16 12:31:07 2685 1

原创 栈与队列基础认知

类似于弹夹中的子弹一样先进去,却要后进来,而后进来的,反而可以先出来的数据结构---栈栈是限定仅在表尾进行插入和删除操作的线性表我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构理解栈的定义需要注意1.栈是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系,只不过是一种特殊的线性 表而已2.定义中说是在线性表的表尾进行插入和删除操作,这里表尾是指。

2022-09-11 23:38:46 1045

原创 线性表基本概念及用法

零个或多个数据元素的有限序列若将线性表记为(a1,a2,a3.......ai,an)a1称为a2的直接前驱元素,a3称为a2的直接后继元素,线性表的个数n定义为线性表的长度,当n=0是,称为空集。ai,i称数据元素ai在线性表中的位序。在较为复杂的线性表中,一个数据元素可以由若干个数据项组成ADT 线性表(List)Data线性表的数据对象集合为{a1,a2,a3,.......an},每个元素的类型均为DataType。

2022-09-06 21:24:52 2281

原创 数据结构(抽象数据类型及算法概念)

自然语言、伪代码描述、流程图、源代码描述(算法给人看,程序给计算机)算法:是为了解决一个或一类问题而规定的一个确定、有限长的操作序列。简单地说,算法就是对问题求解过程的一种描述。定义抽象数据类型复数。...

2022-08-31 08:13:02 1070

原创 初识数据结构

在存储元素信息的同时,还建立附加的索引表,索引表中的每项称为索引项,索引项的一般形式是。逻辑上可以不相邻的元素,可以借助指示元素存储地址的指针来表示元素之间的逻辑关系。,所有能输入到计算机的,并且能被计算机处理的符号的集合。根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。数据类型是一个值得集合和定义在此集合上的一组操作的总称。具有相同特征的数据元素的集合,是数据的一个子集。指数据中具有独立意义的个体,是数据结构中讨论的。逻辑结构中相邻的元素在储存器中也相邻,如线性表。,数据元素是数据项的集合、..

2022-08-29 20:57:20 166

原创 代码对齐Uva1593

掌握vector、string、stringstream基本用法。

2022-08-19 22:32:24 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除