自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】多态(polymorphism)

指的是计算机自身彼此关联的过程,在这个过程中确定程序中的操作调用与之前操作的代码段之间的映射关系,比如:函数重载时,编译器会根据函数名和函数的参数来区别要执行的函数(哪一段代码) 这就是建立的一种映射关系,明确函数调用时会执行哪一个代码段。首先,我们需要额外的内存来存储V表,并且基类中要有一个成员指针指向V表,这样我们才能映射到正确的函数。指的是编译阶段不能确定将要调用的函数,只能在程序运行的时候才能确定将要调用的函数。这不是必需的,但你应该这样做。理解为,同一个接口,通过不同的对象调用,就有不同的效果。

2024-12-09 21:34:42 857

原创 【C++】虚函数

基类中有虚函数时,且通过父类指针去分配子类对象的时候,在释放的时候只能通过父类指针去进行释放,在delete父类指针的时候会调用父类的析构函数,而不会调用子类的析构函数;需要把父类的析构函数定义为虚析构,那么在释放父类指针的时候也就会调用子类的析构函数了。在基类中不能为虚函数给出有意义的实现,就可以把它声明为纯虚函数,然后把它的实现留给派生类去完成。析构函数也可以声明成纯虚析构,类内写声明,不用实现;类中声明函数成员的时候,在函数的前面加上。关键字,“接口”的概念靠纯虚函数实现。关键字,则该成员为虚函数。

2024-12-09 21:29:11 253

原创 【C++】继承(inheritance)

这样继承会导致类D继承两份类A的成员,在类D对象,想要访问类A的成员的时候,会导致访问不明确。因为类B,C各自继承类A的成员。也就是说,Dog继承了Animal,Animal所拥有的age和eat()它也就有了,就像父亲遗传给儿子一样。,虚继承之后会使在虚继承的类中多个指针(内存就会变大),但是在最后的D类,不会再继承两份A的成员了。继承方式就是类中的三种访问属性,每种访问属性通过继承方式之后在派生类中可能会有新的属性。我们发现有重复的代码,如果我们写猫类、鸟类等都要再写一遍,这样很麻烦。

2024-11-23 23:34:00 1476

原创 【C++】类和对象

我们要学习面向对象啦那么,什么是对象呢?比如,学校里有一个个学生,这每一个个体都可以看作对象;而这些个体都是学生,可以抽象为学生类。作为学生,你我都存在一些特征。比如都有学号,都有所在的院系,有姓名、性别、年龄等等,这些属性称为。而且都会干一些事情,比如上课、干饭、打游戏,这些行为称为。还记得结构体吗?有没有发现它和类很像?除此之外没有区别,看个人的使用习惯。

2024-11-21 21:43:27 543

原创 【C++】常量成员

常量成员,指的是在C++类中声明对象成员时可以加上const关键字这样声明的成员叫常量成员,常量成员分为常量数据成员和常量函数成员。

2024-11-21 21:11:58 253

原创 【C++】友元成员

类的特性之一就是封装,而友元就是C++为用户提供打破这种封装的手段,友元分为友元函数和友元对象。

2024-11-21 19:13:52 316

原创 【C++】内联函数

内联函数在这里类似于宏替换,但他们是有区别的。内联函数是一个函数,是在程序执行期间运行的,没有函数的入栈和出栈。宏替换是在预处理阶段执行的,本质是替换。内联函数有形参类型,有返回值类型和返回值。带参宏的形参没有类型,没有返回值类型也没有返回值。内存膨胀:指的是代码区的代码变多,因为使用内联函数之后,这个函数的调用就不会在栈区申请内存来运行,也就是少了入栈出栈的时间;如果是一个普通函数在调用时就会有入栈和出栈。内联函数是一个函数,是通过内存膨胀减少函数的跳转时间,以空间换时间。

2024-11-21 18:25:50 277

原创 【C++】从C到C++

它们也是思维方式的不同,既然讲到饭了,我们就来说说做饭。面向过程是做饭的过程,比如洗菜、开火、放菜、放调料,是一个过程。菜有品种、颜色、形状等,锅有大小、性能等,人可能是不同级别的厨师等。有这样一个比喻,面向过程是炒饭,面向对象是盖饭;1.三目运算符:在C语言中返回的是一个常量,是不能被赋值的;而C++中返回的是变量,可以被赋值。4.在C++中不要返回局部变量或临时变量的地址,虽然C++能够运行变量出作用域之后再使用一次。5.C语言中const修饰的变量不能定义数组大小,而C++中可以。

2024-11-21 17:21:29 744

原创 大端模式和小端模式

采用大端模式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。有些机器同时支持两种模式,通过配置来设定实际的端模式。这个方法判别的依据是:C语言中一个数据对象的地址就是这个对象占用的字节中地址值最小的那个字节的地址。下面这个函数的功能是测试机器使用的是否为小端模式。是则返回true,否则返回false。假如short类型占用2个字节,且存储的地址为0X30。

2024-11-19 18:02:38 253

原创 【C++】this指针

this指针并不是对象本身的一部分,它的作用域在类的内部。当类的普通函数在访问类的普通成员时,该this指针总是指向调用者对象。this指针是系统自动生成且隐藏的,我们看不到定义,但是可以使用。

2024-11-19 16:49:48 188

原创 【C++】拷贝构造

如果类中成员有开辟动态内存的,就要重写拷贝构造,给新对象的指针重新开辟动态内存,这种形式称为“(3)如果一个函数的返回值类型是对象,在函数调用结束,返回对象的时候调用拷贝构造。这里在函数调用的时候会调用两次拷贝构造,函数传参一次,函数返回时一次。会造成重复释放动态内存问题(两个指针的地址指向同一个内存)默认拷贝构造不会重新给指针开辟内存,这种形式称为“一种特殊的构造函数,用自身这种类型来构造自身。const 是为了防止被更改。

2024-11-19 16:32:39 226

原创 【C++】析构函数

在对象结束生命周期时,系统自动调用析构函数,清理对象空间(并不会释放对象)如果类中成员有开辟动态内存的,就要重写析构函数,里面写上动态内存的释放。函数名在与类名相同的基础上再在前面加一个~ 如。

2024-11-19 15:46:13 204

原创 【C++】构造函数

我们创建一个对象,并调用introduceMyself()方法,会报错。这样写很麻烦,当我们构造对象时,如果有办法直接运行这个初始化代码就好了。构造函数用来在创建对象时初始化对象,即为对象的成员变量赋初始值。在Java中数据基本类型如int和float会自动初始化为0。那我们定义一个初始化名字的方法。并在创建对象后首先调用它。假设你有一个Log类,它只有静态的write()方法。但在C++中你必须手动初始化所有基本类型。既然可以重载,那就说明还有带参的构造函数。构造函数在类实例化对象时会自动调用。

2024-11-16 22:36:13 357

原创 【C++】函数的参数缺省

在声明函数时,为某个形参指定一个默认值,在调用函数时,如果不给这个带有默认值的形参传递参数,那么这个形参就会使用指定的默认值;如果给定了参数,就以给定的为准。

2024-11-16 17:14:39 266

原创 【C++】函数重载

由于在C/C++中的浮点型常量默认是double类型,而double类型既可以给int型变量赋值,又可以给float型变量赋值。函数重载指的是,在同一个项目中定义的函数名字可以重复,也就是可以有同名的函数,但是要满足条件才能同名。注意:函数的返回值可以不同,但如果仅仅只有返回值不同是不可以的。加入新的重载函数,使得类型有确定的调用方式,不存在赋值兼容。赋值兼容(隐式类型转换)所导致的函数重载二义性问题。明确函数调用时的参数类型,可以使用强制类型转换。​ (2)相对应位置的类型不同。

2024-11-16 16:56:10 252

原创 【C++】static(静态)

静态局部变量允许我们声明一个变量,它的生命周期基本上相当于整个程序的生命周期,但是它的作用域范围是被限制的。你可以在任何作用域中声明,如果在函数中声明,那么它的作用域范围被限制在这个函数中。静态变量或函数意味着,当需要将这些变量或函数与实际定义的符号链接时,链接器不会在这个翻译单元的作用域之外寻找那个符号定义,即只会在这个翻译单元内部链接(文件内可用):指的是在C++类中声明成员时,可以加上static关键字,这样声明的成员叫静态成员。上面我们说它们属于类,是指它们是类中的一部分,实质上它们和在。

2024-11-16 15:56:18 1422

原创 【C++】单例模式

单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中应用该模式的类只有一个实例化对象。

2024-11-16 15:50:53 465

原创 【C++】引用(reference)

既然是对一个变量或者对象取别名,那就得先有变量或对象,不能凭空取一个别名。也就是定义引用必须初始化。假设我们想通过调用一个函数来实现一个整型变量的自增,有下面3种传递方式。我们为什么要使用引用呢?我们干嘛要起个别名而不直接用真名呢?其实引用就是指针的语法糖(syntax sugar)那么,可不可以给引用取别名呢?引用是对一个变量或者对象取的别名。:形参的改变无法改变实参的值。:形参的改变可以改变实参的值。:形参的改变可以改变实参的值。是不是比使用指针更简洁些呢。

2024-11-15 18:00:09 497

原创 【Visual Studio】设置文件目录

【代码】【Visual Studio】设置文件目录。

2024-11-15 10:38:10 391

原创 【Visual Studio】使用VS调试(Debug)

首先我们来看a的值,显示10016,你可能会疑惑:为什么是10016?如果你不想一个个按F10,而是让程序接着运行到某一句,就在那一句前打断点,按F5或continue。直接在有代码的行前单击,会出现红色的点(再次单击会取消);四个字节的内存也被设置为8(内存1): 08 00 00 00。按F10后我们可以观察到a的值变为了8(局部变量/自动窗口)看到这里你就明白了为什么你的a的值既不是8也不是10016。所以调试器显示的是:a将要被设置的内存位置的数字。

2024-11-14 21:55:40 1049

原创 【C++】How the C++ Linker Works

(1)标记Log函数为静态的(前面加static),这意味着在链接Log函数时,它只能是内部函数。这样Log.cpp和Math.cpp都会有自己版本的Log函数,它对任何其他的obj文件都不可见。链接器不知道它该链接哪一个Log函数,是Log.cpp中的还是Math.cpp中的?我们可以把Log函数单独放到一个文件中(Log.cpp),这样可以降低程序的耦合度。实际上我们就定义了一个Log函数,它在Log.h中。(3)将Log函数的定义放到Log.cpp中,而在Log.h中声明它。

2024-10-28 20:19:25 858

原创 【C++】How the C++ Compiler Works

它会将.h文件视为头文件。首先,它需要预处理我们的代码,这意味着任何预处理语句都会被处理,一旦我们的代码被预处理,我们就会继续进行或多或少的记号化和解析,并基本整理成英文的c++语言,使其成为编译器可以真正理解和推理的格式。但是,如果您只是使用单个CPP文件创建一个项目,并且您从未将它们包含在彼此中,那么每个CPP文件将是一个翻译单元,每个CPP文件将生成一个目标文件。也就是说,我们输入编译器的每个c++文件告诉它这是一个c++文件,请编译它,它会把它编译成一个翻译单元,一个翻译单元会产生一个目标文件。

2024-10-28 18:26:27 871

原创 【C++】HelloWorld

笔者使用的是Microsoft Visual Studio 2022社区版安装过程省略。

2024-10-25 21:19:08 2318

原创 【C++】命名空间(namespace)

在编写代码时写的程序不可能所有的标识符都没有重名现象,在多人协作开发时更加不可控,尤其对于库来说问题更加严重。为了解决重名现象,通过命名空间来避免冲突。(3)命名空间名称访问:直接使用命名空间名称访问其中的成员,不会开放命名空间权限。(2)using指示:开放某个命名空间中所有的成员的访问权限。命名空间用于帮助实现代码的管理(代码的封装)(1)using声明:开放单个成员的访问权限。命名空间是用来组织和重用代码的编译单元。

2024-10-25 20:59:33 286

原创 Vue的安装配置

*history 模式下,前端的 URL 必须和实际向后端发起请求的 URL 一致,如 http://www.abc.com/book/id 如果后端缺少对 /book/id 的路由处理,将返回 404 错误。结合自身例子,对于一般的 Vue + Vue-Router + Webpack + XXX 形式的 Web 开发场景,用 history 模式即可,只需在后端(Apache 或 Nginx)进行简单的路由配置,同时搭配前端路由的 404 页面支持。此处建议选择默认配置,即直接回车即可。

2024-07-22 14:32:17 1182 1

转载 【Error】vue报错:Component name “xxx“ should always be multi-word

在 vue.config.js 中关闭语法提示。

2024-07-22 13:32:45 97

转载 残差平方和(RSS)、均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、标准差(SD)

残差平方和是在线性模型中衡量模型拟合程度的一个量,用连续曲线近似地刻画或比拟平面上离散点组,以表示坐标之间函数关系的一种数据处理方法。统计学上把数据点与它在回归直线上相应位置的差异称为残差,把每个残差平方之后加起来 称为残差平方和(相当于。Standard Deviation ,标准差是方差的算数平方根.是用来衡量一组数自身的离散程度.一组数据的残差平方和越小,其拟合程度越好。均方误差是指参数估计值与参数真值之差平方的期望值。均方误差:均方根误差是均方误差的算术平方根。MSE可以评价数据的变化程度,

2024-07-20 19:22:56 1426

转载 【Error】解决AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

例如,如果你希望使用 Qt5 而不是 Tkinter,你可以通过调用 matplotlib.use('Qt5Agg') 来实现。matplotlib.use('TkAgg') 这行代码是用于设置 Matplotlib 库的后端。Matplotlib 支持多种后端,例如 ‘TkAgg’、‘Qt5Agg’、‘GTK3Agg’ 等。需要注意的是,更改后端会影响所有后续的图形绘制,因此如果你在代码的不同部分使用不同的后端,你需要在每个需要使用特定后端的代码部分之前调用 matplotlib.use()。

2024-07-20 19:13:23 106

原创 【Python机器学习】案例_数据处理及神经网络模型的简单构建

代码仅供参考,数据来源就不提供了。

2024-07-15 10:34:44 120

原创 【Python】获取当前时间

【代码】【Python】获取当前时间。

2024-07-09 15:44:38 790

转载 【Python机器学习】sklearn模型中random_state参数的意义

在学习机器学习的过程中,常常遇到random_state这个参数,并且好多时候都是 random_state=42,感觉挺有意思的,于是,百度一下,然后做一个总结。作用:控制随机状态。问题:为什么需要用到这样一个参数random_state(随机状态)?看完文章你就会知道了。一句话概括:random_state是一个随机种子,是在任意带有随机性的类或函数里作为参数来控制随机模式。当random_state取某一个值时,也就确定了一种规则。1、训练集测试集的划分2、构建决策树3、构建随机森林。

2024-07-07 17:01:14 581

原创 【Python数据分析】案例_如何统计销售额的最大连续递增和递减天数

【代码】【Python数据分析】案例1.如何统计销售额的最大连续递增和递减天数。

2024-07-04 17:38:24 166

原创 【Python数据分析】Pandas_分类对象

通常情况下,数据集中会存在许多同一类别的信息,比如相同国家、相同行政编码、相同性别等,当这些相同类别的数据多次出现时,就会给数据处理增添许多麻烦,导致数据集变得臃肿,不能直观、清晰地展示数据。通过上述示例,您可能会注意到,虽然传递给 Series 四个元素值,但是它的类别为 3,这是因为 a 的类别存在重复。上述示例中,第二个参数值表示类别,当列表中不存在某一类别时,会自动将类别值设置为 NA。对已经分类的数据使用 describe() 方法,您会得到和数据统计相关的摘要信息。命令可以获取对象的类别信息。

2024-06-29 13:58:12 500

原创 【Python数据分析】Pandas_数据重采样

Pandas 提供了 resample() 函数来实现数据的重采样。

2024-06-29 13:32:21 585

原创 【Python数据分析】Pandas_sample随机抽样

随机抽样,是统计学中常用的一种方法,它可以帮助我们从大量的数据中快速地构建出一组数据分析模型。在 Pandas 中,如果想要对数据集进行随机抽样,需要使用 sample() 函数。该函数返回与数据集类型相同的新对象,相当于 numpy.random.choice()。

2024-06-28 13:50:05 382

原创 【Python数据分析】Pandas_日期与时间

时间序列(time series),就是由时间构成的序列,它指的是在一定时间内按照时间顺序测量的某个变量的取值序列,比如一天内的温度会随时间而发生变化,或者股票的价格会随着时间不断的波动,这里用到的一系列时间,就可以看做时间序列。当进行数据分析时,我们会遇到很多带有日期、时间格式的数据集,在处理这些数据集时,可能会遇到日期格式不统一的问题,此时就需要对日期时间做统一的格式化处理。下面示例,使用 asfreq() 和 start 参数,打印 “01” ,若使用 end 参数,则打印 “31”。

2024-06-27 20:52:48 1471

原创 【Python数据分析】Pandas_concat连接操作

如果要连接 Series 和 DataFrame 对象,有一个最方便、快捷的方法,那就是 append() 方法。上述示中,可以看出行索引 index 存在重复使用的现象,如果想让输出的行索引遵循依次递增的规则,那么需要将 ignore_index 设置为 True。如果想把指定的键与 DataFrame 对象连接,您可以使用 keys 参数来实现。注意:此时的索引顺序被改变了,而且键 keys 指定的键也被覆盖了。如果您想要沿着 axis=1 添加两个对象,那么将会追加新的列。

2024-06-20 16:58:58 396

原创 【Python数据分析】Pandas_merge合并操作

Pandas 提供的 merge() 函数能够进行高效的合并操作,这与 SQL 关系型数据库的 MERGE 用法非常相似。从字面意思上不难理解,merge 翻译为“合并”,指的是将两个 DataFrame 数据表按照指定的规则进行连接,最后拼接成一个新的 DataFrame 数据表。参数可以确定 DataFrame 中要包含哪些键,如果在左表、右表都不存的键,那么合并后该键对应的值为 NaN。注意:Pandas 库的 merge() 支持各种内外连接,与其相似的还有 join() 函数(默认为左连接)。

2024-06-20 16:32:28 1942

原创 【Python数据分析】Pandas_groupby分组操作

在数据分析中,经常会遇到这样的情况:根据某一列(或多列)标签把数据划分为不同的组别,然后再对其进行数据分析。比如,某网站对注册用户的性别或者年龄等进行分组,从而研究出网站用户的画像(特点)。在 Pandas 中,要完成数据的分组操作,需要使用 groupby() 函数,它和 SQL 的。在划分出来的组(group)上应用一些统计函数,从而达到数据分析的目的,比如对分组数据进行聚合、转换,或者过滤。通过 filter() 函数可以实现数据的筛选,该函数根据定义的条件过滤数据并返回一个新的数据集。

2024-06-20 16:20:01 2031

原创 【Python数据分析】Pandas_缺失值处理

稀疏数据,指的是在数据库或者数据集中存在大量缺失数据或者空值,我们把这样的数据集称为稀疏数据集。稀疏数据不是无效数据,只不过是信息不全而已,只要通过适当的方法就可以“变废为宝”。

2024-06-20 16:11:57 1013

netAssit程序.zip

一款TCP/IP网络调试工具

2024-05-20

search-log.zip

搜索记录,包括时间、搜索关键词等,用于PySpark案例练习

2024-05-15

hadoop配置文件夹

用于练习PySpark的数据输出,内有readme说明文档

2024-05-15

订单数据-json.zip

内容:订单相关信息 格式:json,特别的:一行有多个json数据,用" | "分隔 用处:使用PySpark进行大数据案例练习

2024-05-14

销售数据-2011年1,2月各省销售数据

2011年1月销售数据 2011年2月销售数据JSON

2024-05-10

Data-1960-2019GDP.zip

数据分析与可视化

2024-05-03

空空如也

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

TA关注的人

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