自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(217)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++ - 深拷贝与浅拷贝 bitwise senimatics和memberwise senimatics

mat_copy._pmat和mat._pmat指向的是同一段地址,在第一次析构mat时,指向的堆内存已经被释放,因此第二次析构mat_copy时,再次释放同一段内存地址,便会造成运行错误。如果类中拥有指针成员变量,而其指向堆中的一片区域,在赋值过程中,只是将指针的值进行了赋值,这样一来,这两个对象中的指针变量自然都是指向同一片内存区域了,即所谓的。所以这时就需要程序员自己来实现拷贝构造函数来完成那片堆内存的拷贝赋值操作,即所谓的深拷贝。我们发现会在析构mat_copy时运行出错,因为由于是。

2023-12-30 15:29:49 515

原创 C++ - STL vector.reserve()&.push_back()

频繁使用std::vector的push_back操作前最好使用reserve预留出相应内存,这样可以减小动态重分配内存所占用的时间,从而增加运行速度。

2023-12-30 02:21:14 448

原创 数据结构 - 左倾红黑树(2-3-树推广)/ C++实现

红黑树的“适度平衡”,由AVL树的“高度平衡”,降低到“任意节点左右子树的高度,相差不超过2倍”,也降低了动态操作时调整的频率。对于一颗动态查找树,如果插入和删除操作比较少,查找操作比较多,采用AVL树比较合适,否则采用红黑树更合适。为了保持AVL树的平衡性,插入和删除操作后,非常频繁地调整全树整体拓扑结构,代价较大。上进一步放宽条件,引入红黑树的结构。

2023-01-12 23:34:32 214 1

原创 数据结构 - AVL树 (Adelson-Velsky and Landis Tree)

二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序,二叉搜索树将有可能退化为单支树,此时查找元素相当于在顺序表中查找元素,效率低下,时间复杂度接近O(n)。最优情况下,二叉搜索树为完全二叉树。最差情况下,二叉搜索树退化为单支树。AVL树是一颗自平衡的二叉树,是对BST的改进。每个节点均有一个平衡因子ppp(p=Height(TL)−Height(TR)p=Height(TL​)−Height(TR​。

2022-12-22 18:59:18 541

原创 C++ - sstream标准库(串流控制)

istringstream类是从istream(输入流类)和stringstreambase(c++字符串流基类)派生而来,ostringstream是从ostream(输出流类)和stringstreambase(c++字符串流基类)派生而来,stringstream则是从iostream(输入输出流类)和和stringstreambase(c++字符串流基类)派生而来。其次,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。

2022-12-21 15:49:47 766

原创 C++ - 异常类体系(exception class hierarchy)

C++标准库定义了一套异常类体系(exception class hierarchy),其根部是名为exception的抽象基类,标准库抛出的异常都是 exception 的子类,称为标准异常(Standard Exception)。exception声明有一个what()虚函数,会返回一个const char *,用以表示被抛出异常的文字描述。如果不使用引用,就要经历一次对象拷贝(要调用拷贝构造函数)的过程。将iterator_overflow融入标准的exception类体系的好处是,它。

2022-12-21 14:34:44 506

原创 C++ - member_template_function样例

【代码】C++ - member_template_function样例。

2022-12-20 16:02:35 61

原创 C++ - 二叉树template实现

【代码】C++ - 二叉树template实现。

2022-12-19 18:39:45 148

原创 C++ - error C2280: 尝试引用已删除的函数

一般而言,对象的赋值构造函数如果开发者没有提供,则编译器会生成默认的赋值构造函数。然而,默认的赋值构造函数在以下几种情况会被删除。,那么在拷贝构造对象时,则无法找到构造函数。

2022-12-18 14:30:00 2563

原创 C++ - 基类应该有多么抽象(样例)

*派生类:**Fibonacci.h、Fibonacci.cpp。**基类:**num_sequence.h。该文章结尾样例的补充。

2022-12-18 14:28:36 190

原创 C++ - 面向对象编程方法

以对象为基础(object-based)”的类机制无法针对如“are-a-kind-of(隶属同类)”的Book类的共通性质进行系统化的划分(如:RentalBook、AudioBook、InterativeBook)。因此,类间的关系有赖于“面向对象编程模型(object-oriented programming model)”加以设定。

2022-12-15 15:22:35 708

原创 Unity2d检测方法 - Physics2D.OverlapCircle()

检查 Collider 是否落在圆形区域内。圆由其在世界空间中的中心坐标及其半径定义。可选的 layerMask 允许测试仅检查特定层上的对象。尽管 Z 轴与 2D 中的渲染或碰撞无关,但您以使用 minDepth 和 maxDepth 参数根据对象的 Z 坐标过滤对象。如果有多个 Collider 落在圆圈内,则返回的将是 Z 坐标值最低的那个。如果圆圈中没有 Collider,则返回 Null。

2022-12-01 00:05:37 4536

原创 C++ - iostream Iterator示例

将istream_iterator绑定至ifstream object;将ostream_iterator绑定至ofstream object。

2022-10-23 15:47:02 233

原创 C++ - 插入迭代器(Iterator Inserter)

插入迭代器(Insert Iterator),又叫插入器(Inserter)。插入迭代器的主要功能为把一个赋值操作转换为把相应的值插入容器的操作。插入迭代器对标准算法库而言尤其重要。决不修改容器的大小(不插入、不删除)。有了插入迭代器,既使得算法库可以通过迭代器对容器插入新的元素,又不违反这一承诺,即保持了设计上的一致性。

2022-10-23 15:20:31 1437

原创 C++ - 泛型算法(algorithm)

集合中是否存在某值。搜索范围由iterator[first, last)标出。如果找到目标,find()会返回一个iterator指向该值,否则返回一个iterator指向last。比对某个容器内是否存在某个子序列。若子序列存在则返回一个iterator指向子序列起始处;否则返回一个iterator指向容器末尾。如果搜索到目标,就返回true;否则返回false。需要确保”目标容器“拥有足够空间放置每个即将到来的元素。返回数值相符的元素数目。

2022-10-21 15:52:30 277

原创 C++ - 顺序性容器(vector、list、deque)

顺序性容器用来维护一组排列有序、类型相同的元素。

2022-10-21 15:12:30 253

原创 C++ - 泛型指针使用示例

等后面学完了再来细写,先备份个代码。

2022-10-19 16:09:03 410

原创 C++ - 函数指针使用示例

【代码】C++ - 函数指针使用示例。

2022-10-18 22:10:50 140

原创 C++ - 重载函数与模板函数(function template)

重载函数通常用来在同一个作用域内用同一个函数名命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。function template 将参数列表中指定的全部(或部分)参数的类型信息抽离了出来。在C++中,虽然重载函数的函数名一样,但其在符号表中生成的名称并不相同。

2022-10-18 17:33:35 264

原创 C++ - 内存管理与动态内存管理

若该对象的内存在main()开始之前便已经分配好,可以一直存在至程序结束。局部静态变量与局部非静态变量不同的是,局部静态对象所处的内存空间,即使在不同的函数调用过程中,依然持续存在。若每次程序段(函数)执行,都会为该对象分配内存,当程序段运行结束后该对象内存便会释放,则称此对象具有。2.频繁的申请空间和释放空间,容易造成内存碎片,甚至内存泄漏,栈区由于是自动管理,不存在此问题。这种内存由程序员自行管理,其分配系通过new表达式来完成,其释放则通过delete表达式完成。为对象分配的内存,其存活时间称为。

2022-10-18 16:27:10 541 1

原创 C++ - 文件读写(fstream)

如果文件名不存在,则会在当前文件目录下创建一个新文件。文件中原有数据会被清空。“outfile”返回值为布尔值,代表文件是否打开成功若文件打开成功,则文件的写入位置设定在文件的起始位置处。

2022-10-18 14:08:32 933 1

原创 C++ - 虚函数、纯虚函数与抽象类

这为派生类提供了备用或默认的行为. C++的虚基类的虚析构函数必须提供函数体定义,否则链接时(linking)在析构该抽象类的派生实例对象的语句处会报错。

2022-10-15 15:28:18 563

原创 C++ - 类的大小计算

类只是一种类型定义,它本身是没有大小可言的。类的大小,指的是类的实例化对象所占的大小C++的空类是指这个类不带任何数据,即类中没有非静态(non-static)数据成员变量,没有虚函数(virtual function),也没有虚基类(virtual base class)。直观地看,空类对象不使用任何空间,因为没有任何隶属对象的数据需要存储。然而,C++标准规定,凡是一个独立的(非附属)对象都必须具有非零大小。C++标准指出,不允许一个对象(当然包括类对象)的大小为0,不同的对象不能具有相同的地址。

2022-10-15 14:13:57 842

原创 C++ - 结构体内存对齐原则

程序定义的数据都要存放到内存中,如果数据起始的内存地址是自身长度的整数倍那么该数据的内存是对齐的。

2022-10-15 13:07:22 587

原创 数据结构 - 哈希表(unordered_map)

散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将所需查询的数据映射到表中一个位置来让人访问,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。对不同的关键字可能得到同一散列地址,即k1≠k2k1​=k2​,而f(k1)=f(k2)f(k1​)=f(k2​),这种现象称为冲突(英语:Collision)。

2022-10-11 14:39:25 829

原创 操作系统 - 银行家算法

银行家算法

2022-06-16 14:59:52 292

原创 操作系统 - 文件管理实验(文件系统)

文件管理实验(文件系统)

2022-06-16 14:56:41 3640

原创 操作系统 - 作业调度实验(FCFS、SJF、HRN)

作业调度实验(FCFS、SJF、HRN)

2022-06-16 14:54:11 908

原创 操作系统 - 进程调度实验(最高优先数优先、轮转法)

进程调度实验

2022-06-16 14:50:56 1962

原创 【pandas】DataFrame 数据处理方法汇总

读取csv文件:data2 = pd.read_csv('data2(1).csv',encoding='gbk')读取Excel文件:dm = pd.read_excel(path+ "2021MCM_ProblemC_ Images_by_GlobalID.xlsx");数据连接:data = pd.merge(ds,dm);数据筛选:从’Lab Status’列中选取值为’Negative ID’的行;dN = data[data['Lab Status'].isin(['

2022-02-15 14:22:55 1543

原创 【matplotlib】图像绘制方法汇总

头文件:import matplotlib.pyplot as pltfrom mpl_toolkits.axes_grid1 import host_subplotimport mpl_toolkits.axisartist as AAfrom pylab import mplmpl.rcParams['font.sans-serif'] = ['FangSong']mpl.rcParams['axes.unicode_minus'] = False直方图绘制:示例代码:labels

2022-02-15 14:01:58 959 1

原创 【Sklearn】k-means & k-means++

头文件:from sklearn.model_selection import train_test_splitfrom sklearn.cluster import KMeansfrom sklearn.datasets import make_blobsfrom sklearn import metrics输入格式为:kmd = np.array(kmd,dtype = 'float')print(kmd);K-means代码:k_means = KMeans(init='k-m

2022-02-15 13:48:09 891

原创 2021 APMCM 亚太赛总结

鉴于上次数学建模由于审题错误失利,报了亚太赛来为美赛增加参赛经验。但是由于之前一点没准备以及临近月底事情较多比赛进行的比较匆忙。选择的A题,最开始审题时以为跟国赛一样,用matlab可以全部解决,但是读完题之后发现需要借助其他的工具,后来发现Python由于anaconda环境不知道出了什么问题,运行不了,需要卸了重新安装,附带的jupyter、pytorch,panda等一系列全部无法使用。熟悉anaconda的伙伴肯定知道安装卸载它有多么痛苦。无奈只好安装C++版的opencv和halcon。并且感觉亚

2021-12-01 18:05:10 5684 2

原创 【数字图像处理Matlab】- 实验二:图像噪声及图像复原

2.1 编程实现:复原由运动模糊+高斯噪声造成的退化图像,对比逆滤波、维纳滤波以及最小二乘方滤波方法。代码如下:I = imread('005.bmp');I = im2double(I);subplot(3, 3, 1),imshow(I),title('原始图像');IG = rgb2gray(I);subplot(3, 3, 2),imshow(IG),title('灰度图像');len = 30;theta = 45;PSF = fspecial('motion',len,thet

2021-12-01 17:12:29 5404

原创 【数字图像处理Matlab】- 实验一:图像基本操作及傅里叶变换

1.1 编程实现:图像读、写、显示。代码如下:I = imread('005.bmp');imshow(I);imwrite(I,'image5.bmp');实验结果:1.2 编程实现:图像类型转换。代码如下:I = imread('005.bmp');IG = rgb2gray(I);subplot(1,2,1),imshow(IG),title('RGB图像转灰度图像');Ibw = im2bw(I, 0.5);subplot(1,2,2),imshow(Ibw),title

2021-12-01 17:09:44 1004

原创 【编译原理】- 基于Flex构造词法分析器

【问题描述】设计c语言常见单词的正规式,编制lex源文件,利用flex编译得到词法分析的.c文件,继而对该文件编译得到词法分析器。【输入形式】输入一段c语言程序【输出形式】各类单词的token字,或者给出程序中的单词错误。【样例输入】int main(){ int a = 10; double b = 20.9; if(a <= b) a+=b; else a = 0; return a;}【样例输出】line1:(type, i

2021-12-01 16:57:54 332

原创 【编译原理】- 手工构造词法分析器

【问题描述】通过设计c语言常见单词的正规文法或正规式,而后得到NFA,再确定化得到DFA,根据DFA的转换矩阵或转换图,用c++语言实现词法分析器。【输入形式】输入一段完整的c语言程序【输出形式】各类单词的token字【样例输入】int main(){ int a = 10; double b = -20.9; if(a<=b) a+=b; return a;}【样例输出】line1:(type, int)line1:(keyword, m

2021-12-01 16:43:03 862

原创 构造交叉检验(循环估计)数据集

交叉验证(Cross-validation)主要用于建模应用中,例如PCR、PLS回归建模中。在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器

2021-09-08 22:55:12 132

原创 数据标准化(归一化)

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种常用的归一化方法:一、min-max标准化(Min-Max Normalization)也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间。转换函数如下:其中max为样本数据的最大值,min

2021-09-06 12:08:37 656

原创 计算方法 - 求近似值

#include <iostream>#include <cstdio>#include <cmath>using namespace std;#define ll long longconst double m = 1e8;const double esp = 0.5e-3;double i1[20] = {0.0}, i2[20] = {0.0};double f(double x) { double t = 1.0; while.

2021-06-16 18:53:41 490

Triangular+Triangular-iterator+iterator-overflow.zip

Triangular类,包含对Triangular类的提领操作Triangular_iterator类,以及异常类iterator_overflow。 输入输出样例为: (3,6) Triangular Series of 6 elements 6 10 15 21 28 36

2022-12-21

可重构计算实验说明.rar

可重构计算实验说明.rar

2021-11-26

空空如也

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

TA关注的人

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