自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 类类型的参数传递给函数

在C++中,当你想要将一个类类型的参数传递给函数时,你可以直接使用类名作为参数类型。当你需要函数内部修改对象的值,并且这些修改需要反映到函数外部时,你可以按值传递对象。如果你需要在函数内部修改对象,并且希望这些修改反映到函数外部,你可以按指针传递对象。可以将对象转换为右值引用,这允许函数“拿走”对象的资源,使原始对象变为空。按值传递会创建对象的一个副本,因此函数内部对对象的修改不会影响原始对象。按引用传递可以避免复制对象,并且可以在函数内部修改对象。如果你不希望函数内部修改对象,可以按常量引用传递。

2024-11-19 09:31:37 307 1

原创 c++程序设计速学4字符串处理

暴力匹配算法是最简单的模式匹配算法,从文本的第一个字符开始,逐个字符与模式进行比较。Boyer-Moore 算法通过跳过不可能匹配的部分来提高效率。坏字符规则:根据模式中最后一个字符在模式中的位置决定跳过的步长。KMP 算法通过预处理模式来避免不必要的比较,从而提高效率。好后缀规则:根据模式的后缀在模式中的位置决定跳过的步长。计算文本中每个子串的哈希值,并与模式的哈希值进行比较。利用前缀函数在匹配失败时快速跳过已经比较过的字符。使用坏字符规则和好后缀规则来决定跳过的步长。计算模式的前缀函数(部分匹配表)。

2024-11-08 13:56:54 337

原创 c++程序设计速学笔记3复杂数据结构

树的根节点(root node)位于顶部,其他节点通过分支(branches)连接。树的每个节点可以有零个或多个子节点(child nodes),没有子节点的节点称为叶节点(leaf nodes)。堆(Heap)是一种特殊的完全二叉树,通常用于实现优先队列(Priority Queue)。在这两种堆中,每个节点的值都满足一定的条件,使得堆的根节点具有特殊的意义。图由节点(顶点,Vertices)和边(Edges)组成,可以用来表示多种现实世界的问题,如社交网络、交通网络、计算机网络等。

2024-11-07 01:07:35 1165

原创 c++程序设计速学笔记2基础数据结构

数组是一种线性数据结构,它存储相同类型的元素的连续内存块。数组的每个元素都有一个索引,用于快速访问和操作数据。然而,由于它不支持随机访问,所以不适合需要频繁访问中间元素的场景。栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据结构。链表是一种线性数据结构,由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。vector 是一种动态数组容器,它封装了数组的功能,并允许在运行时动态地调整大小。队列常用于处理需要保持元素顺序的场景,如打印任务队列、消息队列等。

2024-11-06 21:23:12 330

原创 c++程序设计速学1

在C++中学习数据结构与算法,主要涉及以下几个核心内容:基础数据结构:复杂数据结构:字符串处理:递归与分治算法:动态规划:贪心算法:排序算法:搜索算法:图算法:算法设计与分析:面向对象编程与数据结构:STL(Standard Template Library):并发与多线程:内存管理:实际问题解决:

2024-11-06 16:35:20 285

原创 特征归一化

特征归一化是机器学习中非常重要的数据预处理步骤,它主要目的是将不同量纲或数值范围的特征转换到同一尺度上,以消除特征之间的量纲影响,确保不同指标具有可比性。这一过程有助于提高机器学习模型的性能和收敛速度,特别是在使用基于梯度下降的优化算法时。

2024-10-16 11:09:13 845

原创 模型评价方法

在实际应用中,需要根据具体的数据集、任务需求和模型类型来选择合适的评价方法。它展示了模型在不同阈值下的真正例率(True Positive Rate,即召回率)和假正例率(False Positive Rate)之间的关系。模型评价是机器学习领域中的一个重要环节,它旨在评估模型的性能并确定其是否满足实际应用的需求。K折交叉验证:将数据分成K份,每次用K-1份做训练集,1份做验证集,循环K次。在某些情况下,ROC曲线可能不够敏感,无法准确反映模型在不同类别上的性能差异。

2024-10-15 19:22:56 564

原创 内联函数inline

在这个示例中,square函数被定义为内联函数。如果编译器决定内联,那么在main函数中调用square(num)时,会被替换为num * num。内联函数通常不适用于递归函数,因为递归调用会导致无限展开,编译器通常会忽略inline建议。过度使用内联函数会导致代码膨胀,增加二进制文件的大小,并可能降低缓存效率,从而影响性能。通常,内联函数的声明和定义放在一起,因为编译器需要在编译时看到函数体以决定是否内联。在类的定义中直接定义的成员函数(在类声明中定义的函数体)默认是内联的。

2024-10-13 19:58:01 355

原创 标准模板库STL

C++ 的标准模板库(Standard Template Library,简称 STL)是一组由 C++ 标准委员会制定的模板类和函数,用于实现常见的数据结构和算法STL。STL 提供了丰富的算法,用于对容器中的元素进行各种操作,如排序、查找、复制、替换、变换和生成等。除了容器适配器外,STL 还提供了迭代器适配器和函数适配器,用于改变迭代器或函数对象的行为。适用容器:支持随机访问迭代器的容器,或可以通过迭代器进行反向遍历的容器。功能:删除容器中的元素,可以是单个元素或指定范围内的元素。

2024-10-13 19:57:05 943

原创 静态数据常量与变量的辨析及应用

在C++中,静态数据成员是类的一部分,但它们不属于类的任何特定对象。静态数据成员在程序的整个运行期间只存在一个副本,无论创建了多少个类的对象。以下是一些关于C++中静态数据成员的关键知识点:声明和定义:访问:初始化:作用域:存储:线程安全:静态数据成员函数:友元和继承:静态数据成员通常用于那些应该被类的所有对象共享的数据,例如计数器,或者那些与类本身相关而不是与任何特定对象相关的数据。在编程中,常量和变量是存储和操作数据的基本概念。以下是关于常量和变量的一些基础知识:定义:变量是

2024-10-11 10:35:14 919

原创 指针的使用方法以及其他相关概念

这里ptr就是一个指向a的指针,存储了a的内存地址。指针是一个变量,它存储的是另一个变量的内存地址,而不是值本身。空指针是指不指向任何变量的指针,可以用来表示一个无效的指针。需要注意的是,使用完动态分配的内存后,一定要使用delete或delete[](对于数组)来释放内存,以避免内存泄漏。在这个例子中,swap函数通过指针参数接收两个整数的地址,并交换它们所指向的内存地址中的值。这里的int* ptr表示ptr是一个指向整型的指针,&num是获取num的内存地址。,即可得到该指针所指向的变量的值。

2024-10-11 10:31:54 505

原创 友元函数friend

在C++中,友元函数(Friend Function)是一种特殊类型的函数,它不属于类的成员函数,但可以访问类的私有成员和保护成员。友元函数可以是普通函数、其他类的成员函数或类的成员函数模板。

2024-10-10 19:55:40 418

原创 nullptr与宏

在C和C++等编程语言中都是代码复用的重要手段,但它们之间存在一些显著的区别。本质区别宏定义:是预处理指令,在编译前进行文本替换,不分配内存,不占运行时间,只占编译时间。函数:是程序中的一段独立代码,用于实现特定的功能,可以被多次调用。函数调用会带来额外的开销,如栈空间分配、返回地址记录、参数压栈等。参数类型宏定义:宏的参数是无类型的,只要参数的操作是合法的,它可以用于任何参数类型。这意味着宏可以处理不同类型的参数,但也可能导致类型不匹配的问题。

2024-10-07 15:52:07 577

原创 C 语言stdlib.h

这些函数在特定的应用程序或系统编程中可能会有用,但在日常编程中使用较少。这个头文件包含了许多通用的函数和宏定义,这些函数和宏定义执行各种通用的任务,如内存分配、程序控制、类型转换、随机数生成等。头文件中包含了许多不常用的函数,这些函数在特定的场合或较少使用的编程任务中可能会用到。中的函数时,需要包含这个头文件,以便编译器知道这些函数和宏的定义。:生成一个唯一的文件名并打开该文件,带有随机后缀。:生成一个唯一的文件名并打开该文件。:设置随机数生成器的种子。:执行一个shell命令。:设置随机数生成器的种子。

2024-09-29 23:16:22 714

原创 数据结构——单链表2

判断单链表是否存在环以及入口节点。求单链表倒数第K个节点。

2024-09-28 22:38:23 414

原创 数据结构——链表1

特点:每一个节点都是在堆内存上独立new出来的。

2024-09-27 12:20:09 252

原创 基本双指针问题

【代码】奇偶数调整问题。

2024-09-26 08:30:29 247

原创 数组代码输出

【代码】数组代码输出。

2024-09-25 15:09:40 145

原创 线性回归算法

线性回归的目标是找到一条直线(在一元线性回归中)或一个超平面(在多元线性回归中),使得数据点到该直线或超平面的距离之和最小。在进行分析之前,需要对数据进行检查和处理,去除异常值或对其进行适当的处理。线性回归需要足够的数据量来保证模型的准确性和稳定性。同时,数据的质量也很重要,包括数据的准确性、完整性和一致性等。通过线性回归可以分析自变量与因变量之间的关系,判断自变量对因变量的影响程度。线性回归可以用于预测因变量的值,例如房价预测、销售预测等。线性回归可以对数据进行拟合,找到数据的趋势和规律。

2024-09-21 22:31:14 587

原创 KNN回归

【代码】KNN回归。

2024-09-20 12:25:44 291

原创 K 近邻算法(K - Nearest Neighbors,KNN)

K 近邻算法

2024-09-19 12:23:48 1065

原创 算法 分类

机器学习算法分类深度学习算法分类

2024-09-19 12:04:42 611

空空如也

空空如也

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

TA关注的人

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