- 博客(13)
- 收藏
- 关注
原创 C/Cppnote_6_this 指针的理解与运用
This 指针是在类对象的成员函数(非静态)中,指向对象自身的指针。这样一个指向类对象的指针,有点像一个指向结构体变量的指针。于是为了更好地理解 this 指针,我们可以先尝试用C语言的语法实现C++的类。C语言对C++类的实现 - this 指针的原理让我们先在C++里给出一个简单的类 A:class A{public: void setInfo(int info) { this->Info = info;// Info = info;
2022-03-02 17:44:33
544
原创 C/Cppnote_4_类的成员变量初始化(构造函数)
C++类中成员变量的初始化有两种方式(二选一)构造函数初始化列表构造函数体内赋值对于不同的成员变量情况,我们使用这两种初始化的情况也有不同:内部数据类型对于内部类型的成员变量,两种初始化方式基本上没有区别,效率上也不存在多大差异。类中 const 数据成员、引用数据成员,必须在初始化列表中初始化(常量)。class ClassName{public: ClassName(int val_a, int val_b, int ref, int constVal) : // 初
2022-02-27 12:49:20
573
原创 Algorinote_5_回溯法 (BackTracking) ~ DFS
本文探究回溯法的递归与递推(迭代)实现框架,就一些经典应用回溯法的问题,提供伪代码与一些分析拓展:排列组合(全排列、子集)、N皇后。
2022-02-26 19:05:15
358
原创 Matnote_2_数据的同质性 Data Homogeneity
在学习统计学检验时翻到了一个有关气象学统计分析的网站 (http://iridl.ldeo.columbia.edu/dochelp/StatTutorial/Homogeneity/index.html),这里说的数据同质性从来没见过,搜索也只有英语结果。尝试翻译一下加入自己的理解,看看是不是异质性检验之类的东西。提示:原文关于数据的描述是从气象数据的角度来讲的。Introduction在使用一组统计数据之前,检验这组数据是否同质 (homogeneous) 十分重要。具有同质性的数据应当来自同一
2022-02-25 20:54:00
2421
原创 C/Cppnote_3_浅析C与C++的输入输出
标准I/O (C语言)C程序会自动打开三个标准文件:标准输入、标准输出、标准错误输出,而标准IO头文件 stdio.h ,会将标准文件与三个文件指针 (FILE * 类型)相关联,分别为 stdin, stdout, stderr。这些标准文件是 scanf, printf, putchar 等不指定文件的函数的默认使用文件。不同于操作系统的底层IO函数,标准IO会创建读/写的缓冲区,以及一个包含文件与缓冲区数据的结构(包含一些IO信息)。iostream库 (C++)C++中没有定义任何IO语句
2022-02-07 00:53:02
1049
转载 C/Cppnote_2_数据存储错误
C语言数据存储相关的错误1. 间接引用坏指针(Dereferencing Bad Pointers)在进程的虚拟地址空间中有较大的洞, 没有映射到任何有意义的数据. 如果我们试图间接引用一个指向这些洞的指针, 那么操作系统就会以**段异常(segmentation exception)中止我们的程序. 而且, 虚拟存储器的某些区域是只读的. 试图写这些区域将会以保护异常(protection exception)**中止这个程序. int val; scanf("%d", val);/* G
2022-02-07 00:47:06
105
原创 C/Cppnote_1_对指针的进一步学习与探讨
目录对地址的加减运算不需要 * sizeof( ?)对普通变量的地址进行加减字符串的表示形式 int arr[4] = {0,1,2,3}; printf("%d", *(arr+1));// output2Process finished with exit code 0知识点:对数组名的地址值进行加减再用 * 解引用,相当于下标索引的 [ ] 运算符。(指针偏移)1. 对地址的加减运算不需要 * sizeof( ?)不管是什么类型的数组,指针 +1 都代表了下一个元素的地址
2022-02-07 00:13:25
535
原创 Matnote_1_MATLAB实现渗透(渗滤)模型 Percolation Model
在MATLAB中采用蒙特卡罗方法仿真模拟并可视化物理渗透模型,具体采用快速并查集算法实现动态连通系统,并利用平均思想估计渗透阈值常数。
2022-01-26 00:12:54
2211
原创 Essencenote_1_从 C语言按位异或实现两数交换 到 信息量与密码学的思考
引发void exchange_0(int* a, int* b){ *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b;}了解到这三条按位异或竟然可以实现对 a 和 b 两数的交换,深感有趣。位运算的替换经常能够在速度上优化代码,这里也不例外,自己机子上实测比用第三变量实现交换快了15%~25%。这三条语句实在是优美,在上工图课的我不由自主地开始研究起来(别学QwQ)。这个方法似乎还能写得更离谱一点:void exchange_1(int* a, int
2021-10-24 13:25:47
2622
原创 Algorinote_1_快速幂
看大黑书里提到了幂运算可以通过二分优化,今个用上了.递归思路对幂运算进行对分.利用递归执行代码很简单.typedef long long llll pow_V0(ll a , ll n){ if (!n) return 1; else if (n % 2 == 1) return a * pow(a, n-1); else { ll temp = pow(a, n/2); //不能省去,要让q_pow()只执行一次
2021-10-18 13:42:54
69
原创 程序重复运行时会越来越快?
今天学习time.h的计时用法,尝试循环运行求平均时间,结果显示循环次数越多,平均运行速度越快。计时模板使用头文件time.h double start, end; start = clock(); //********************************** Your Programme //********************************** end = clock(); printf("%if seco
2021-10-11 14:02:36
410
原创 二分查找小总结
二分查找0. 基本1.求中间mid索引时应int mid = left + (right-left)/2;而不是Int mid = (left+right)/2;可以防止left+right溢出(超出整数范围)2.不是二分就一定要像排序一样递归的对于 简单的查找操作,循环即可解决3.重点: mid 加一还是减一,while 里到底用 <= 还是 <。4.基本框架:int binarySearch(int[] nums, int target) {int left = 0,
2021-09-18 18:49:14
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人