
笔记
文章平均质量分 53
睥睨意
这个作者很懒,什么都没留下…
展开
-
大整数运算及组合数
A + B#include<iostream>#include<cstring>using namespace std;struct bign{ int d[1000]; int len; bign(){ memset(d, 0, sizeof(d)); len = 0; }};bign change(char str[]){ bign a; a.len = strlen(str); for(int i = 0; i < a.len; i++)原创 2022-01-27 23:41:17 · 601 阅读 · 0 评论 -
分数的表示
#include <iostream>#include <cmath>using namespace std;int g(int a, int b){//求最大公约数 int t; if(a < b){ t = b; b = a; a = t; } return !b ? a : g(b, a%b);//如果 b == 0返回a,否则返回g(b, a%b); }struct Fraction{//定义分数的结构体 int up, down;原创 2022-01-26 10:47:54 · 562 阅读 · 0 评论 -
KMP算法
记录KMP算法方便使用#include<iostreeam>using namespace std;void Getnext(char *parttern, int *next){ next[0] = -1;//如果模式串的第一位就匹配失败,跳到-1 for(int i = 1, j = -1; parttern[i]; ++i)//j指向的是模式串最长后缀的最后那个元素,模式串的第i位和第j+1位比较,如果成功i跳到j+1位置,失败j往前跳到更小的最长前缀的最后一位 { wh原创 2022-01-24 14:54:35 · 255 阅读 · 0 评论 -
字符串匹配——暴力破解法
暴力匹配字符串原创 2022-01-24 09:28:20 · 409 阅读 · 0 评论 -
2021-09-04 文件操作
文件操作在程序运行时产生的数据属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化对文件操作需要包含头文件文件的类型1、文本文件,文件以文本的ASCLL码形式存储在计算机中2、二进制文件,文件以文本的二进制文件形式存储在计算机操作文件的三大类1、ofstream:写操作2、ifstream:读操作3、fstream:读写操作写文件//1、包含头文件#include<fstream>//2、创建对象流ofstream ofs;//3、打开文件ofs.o原创 2021-09-05 13:14:24 · 110 阅读 · 0 评论 -
2021.8.29类和对象<2>运算符重载 继承 析构
友元是原类的好基友,可以访问原类的私密空间(private),而其他只能访问公共场所(public)关键字:friend全局函数做友元class Building { friend void goodGay(Building & building);//goodGay全局函数是Building的好朋友,可以访问Building中的私有成员public: Building() { m_sittingRoom = "客厅"; m_bedRoom = "卧室"; } stri原创 2021-09-03 15:46:49 · 155 阅读 · 0 评论 -
2021-08-22 类和对象<1>
类和对象类的属性和行为 -> 成员属性 -> 成员属性 成员变量行为-> 成员函数 成员方法设计一个圆类,求圆的周长const double PI = 3.14;class circle{public: int r; double calculate(){ return 2*PI*r; }private:}int main(){ circle cl; cl.r = 10; cout << cl.calaulate() << end原创 2021-08-29 14:15:19 · 130 阅读 · 0 评论 -
2021-08-22 函数的高级应用
函数提高函数的默认参数:函数的形参列表中的形参是可以有默认值的语法:返回值类型 函数名 (类型 参数 = 默认值)int func(int a, int b, int c){//一个参数都不能少传 return a + b + c;}int func(int a, int b = 20, int c = 30){//如果我们有参数传入就用这个参数计算,不传参数就调用默认值计算 return a + b + c;}注意1如果某个位置已经有了默认参数,那么从这个位置往后都必须有默认值fu原创 2021-08-22 10:09:53 · 74 阅读 · 0 评论 -
2021-8-21 引用
引用给一个变量起别名语法: 数据类型 &别名 = 原名修改别名和原名都是修改同一块内存中的数据。注意事项引用必须要初始化不能写 直接写 int &a;引用一旦初始化,就不可以更改了引用做函数参数作用 : 函数传参时,可以利用引用的技术让形参修饰实参//交换函数//值传递void change(int a, int b){int temp = a;a = b;b = temp;//地址传递void change2(int *a, int *b){//用指针来接原创 2021-08-21 21:51:15 · 86 阅读 · 0 评论 -
2021-08-21 内存分区原理
代码区存放函数体的二进制代码,由操作系统管理存放CPU执行的机器指令代码区是共享的,目的是对于频繁被执行的程序,只需要在内存中有一份代码就行代码区是只读的。防止程序意外修改指令全局区存放全局变量和静态变量以及常量全局变量和静态变量存放于此全局区还包含了常量区,字符串常量和其他常量该区域的数据在程序结束后由操作系统释放写在函数体中的变量就是局部变量,不在函数体中的变量就是全局变量int g_a = 10;//全局变量 -> 在全局区int main(){ int a = 10;原创 2021-08-21 20:33:31 · 171 阅读 · 0 评论 -
模板及例题
函数模板如果有两个函数的参数个数和功能一样,只有类型不同,就可以不用复制粘贴,而用函数模板取代template<模板参数列表>类型名 函数名(参数表){ //函数定义}模板参数列表:class 或者 typename 标识符例template<typename T>T sort(T x){ return ...原创 2021-08-10 20:29:55 · 113 阅读 · 0 评论 -
动态内存分配,const,自动推导类型,lambda,main,常量指针和指针常量
定义一个可以保存数组,并且支持多种类型的array,这里需要用到我们之前学过的关于类的定义、类模板和动态内存分配的相关知识。我们定义的array需要支持以下功能:构造的时候,给予一个整数参数n,确定对象的容量(即内部要开多大的数组)通过insert成员函数在数组内的末尾插入一个元素,如果容量已经满了则输出array full通过showAll成员函数,输出所有元素,每个占一行输出格式:yangzhou30119260817array full#include原创 2021-08-10 20:25:13 · 151 阅读 · 0 评论 -
指针及其运算关系
宏定义宏定义结束后没有分号。宏定义会在编译前被预处理,所以它的替换过程并不会占用程序运行时的时间。cpp#define PI 3.14#define EPSILON 1e-6#define MAX(x, y) a>b?a:b每当程序中出现MAX(x, y), 就会被 a>b?a:b 替换 指针int arr[3] = {1, 2, 3};int *p;p = &a[0];p 保存的是arr第一个元素的地址,也就是a[0]的地址,我们可以通过对地址进行±1的操作原创 2021-08-07 08:15:11 · 1327 阅读 · 0 评论 -
折半查找题
折半查找题给定 NN 个整数和 KK 个待查找的整数 ,如果待查找的整数在给定的 NN 个整数中,请输出待查找的整数是数组中第几个元素(从 1 开始计算,第一个元素计 1 而不是 0);如果待查找的整数不在给定的 NN 个整数中,则输出 0。测评机可能会反复运行程序,每次程序运行后,测评机输入包括三行。第一行输入两个整数 NN(1 \leq N\leq 10^61≤N≤10 6 )和 KK(1 \leq M\leq 10^61≤M≤10 6 ),分别表示给定的整数总个数和待查找的数的个数;第二行从小到大原创 2021-08-05 13:53:53 · 257 阅读 · 0 评论 -
C中继承的字符串库以及字符串数组vector容器
从C语言中继承的库以及函数scanf :int a; scanf ("%d", &a);这里的 "%d"是占位符, 函数从标输入读取字符串。 按照 int 类型进行解析, 处理之后保存在 a 变量中, 必须提供a 的地址才能保存成功对于其他的数据类型,有不同的占位符:有符号整数 (int):%d 或 %i字符型 (char) :%c字符串(string) :%s无符号性整数 (undesign):%u浮点数(double):%f科学技术法 : %e内存地址 : %p对于字符串原创 2021-08-01 23:33:13 · 628 阅读 · 1 评论 -
2021-04-27 构造函数和析构函数
初始化列表作用: 给构造函数中的变量附上初始值。构造函数名(构造函数中的参数列表):成员变量(常量或参数)[构造函数的函数体。}可以在对象构造的时候,直接就用初始值初始化成员变量。如:clock(int newS,int newM,int newH): minute(newM), second(newS), hour(newH){ //这个必须写在类的声明中,如果还需要构造函数干别的事,可以继续写}内嵌对象必须由初始化列表完成对象的初始化析构函数也是类的一个公有函数成员他的名称是在原创 2021-04-30 10:28:45 · 92 阅读 · 0 评论