自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二维码的生成与简析

二维码的生成与简析二维码定义:先拓展一下一维条码: 一维条码就是“条码条”和“空白”的排列组合,一维条码的数据只记载在宽度上,长度上不记载任何数据。二维码:又称二维条码,是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩阵图案存储记录数据,用设备扫描后可以获取二维码中所包含的信息。二者区别:二维条码的长度,宽度均记载着数据,而一维条码只有宽度记载数据。常见的二维条码有:PDF417码、QR码、汉信码、颜色条码、EZ码等。我们日常生活中所常见的二维码时QR码。...

2021-02-07 13:02:04 339 1

原创 类和对象

一、类和对象的概念类:同一类对象的共同属性和行为类是把属性和方法进行封装,同时对类的属性和方法进行访问控制。 类是由我们根据客观事物抽象而成,形成一类事物,然后用类去定义对象,形成这类事物的具体个体。 类是一个数据类型,类是抽象的,而对象是一个具体的变量,是占用内存空间的。对象:对现实事物的模拟,具有属性和行为特征。对象是类的具体化      举个简单的例子:人可以看为一个类,大...

2018-11-28 17:22:33 163

原创 new delete

对于计算机程序设计而言,变量和对象在内存中的分配都是编译器在编译程序时安排好的,这带来了极大的不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。对于不能确定需要占用多少内存的情况,动态内存分配解决了这个问题。    new和delete运算符是用于动态分配和清理开辟的内存的运算符。一、我们现在想开辟用来存放 int 型数据的内存,在c++中可以这样定义:         ...

2018-11-28 16:56:18 127

原创 C++中const

 C和C++都有const这个关键字,虽然有相似,但是也有不同。const 在 C++ 与 C 中的不同:1、C 中被 const 所修饰的叫做常变量,(被修饰的内容不可做左值。)2、C++ 中被const 所修饰的内容叫做常量,(1)必须初始化(2)不允许普通的指针指向,只能用const类型的指针指向  举例来说:const int a=10;int *p=&a...

2018-11-26 21:55:06 786

原创 堆排序

堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:即在父节点的值大于左孩子,右孩子的值。堆分为大顶堆和小顶堆。我们以大顶堆为例进行堆排: 给出一组无序数据 {1, 3 ,6, 5, 9, 4, 8, 2, 7},运用堆排序进行排序。首先:构建完全二叉树,将数组中的数据一一对应保存在完全二叉树内:然后我们需要对构建的完全二叉树进行调整,让它满足二叉树的性质,首先需要找到最后一个...

2018-10-27 23:27:48 97

原创 直接插入排序算法

直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的有序表的过程。插入排序将一组数据分成有序组与待插入组。每次从待插入组中取出一个元素,与有序组的元素进行比较,并找到合适的位置,将元素插到有序组当中。就这样,每次插入一个元素,有序组增加,待插入组减少。直到待插入组元素个数为0。如要将一组无序的数据进行排序(数据大于1个),如下图所示:每...

2018-10-26 23:45:08 243

原创 KMP算法

首先简单的提一下BF算法(定义不加阐述):在进行模式匹配时,i(主串) 下标的值与 j (子串)下标的值进行比较,若相等则 i 和 j 挪到下一位,若失配的话则 j 回退到 0 号下标位置,i 回退到 i - j +1的位置,循环往复这种算法是解决模式匹配的一种直接算法,以图为例,我们可以看到,失配字符前的字符没有 a ,所以 i ,j 回退完全就是浪费时间。对于此 ,我们对此算法进行...

2018-10-23 22:05:14 174

原创 静态链表算法

静态链表是一种存储数据的链表结构(定义不加赘述),对于单链表来说,数据域存储数据,指针域存储下一个结点的地址,而需要进行插入操作时,则需要动态的申请新的结点。静态链表也有两个域,我们命名为数据域和游标域。数据域用来存放数据,游标域存储下一个未使用结点的下标(红色代表未使用,蓝色代表使用) 对于此结构来讲,假设申请的最大结点为Maxsize,且没有使用。则可以使用的结点数为Maxsize...

2018-10-11 23:37:43 1329

原创 通过数组名访问数组元素的一些常见小计算

数组名的含义有以下几种情况:1.数组名在如下情况表示整个数组:(1);在定义数组的同一个函数,求sizeof(arr)(2):在定义数组的同一个函数,&arr+12.其他情况下数组名表示数组首元素的地址我们先定义一个一维数组:int main(){int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//聚合类型 初始化一部分剩余部分为0;prin...

2018-05-26 23:31:28 1057

原创 魔方阵

奇数阶魔方阵⑴将1放在第一行中间一列;⑵从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列);⑶如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;⑷当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;⑸...

2018-05-05 18:16:49 1343

原创 结构体小知识课堂

结构体又称自定义数据类型,可表示为struct +类型名例如我们需要统计一个学生的姓名、年龄等信息这个时候我们就需要用到结构体:struct Student{char name[20];int age;};//自定义数据类型,定义完成以后,等同于内置类型   这句话如何理解呢我们看下面代码int main(){int a;int b;int arr[45...

2018-05-03 14:06:40 127

原创 代码段、全局(静态)变量区、栈、堆

先将内存区化为四个部分,分别保存 代码段、全局(静态)变量区、栈、堆分情况讨论:全局变量:在函数外面定义的变量生命周期:程序运行开始创建,程序退出时销毁作用域:整个文件都可使用(从定义开始到文件结尾)默认值:0内存区域:全局(静态)变量区链接属性:外部的静态全局变量:生命周期:程序运行开始创建,程序退出时销毁作用域:整个文件都可使用(从定义开始到文件结尾)默认值:0内存区域:全局(静态)变量区链接...

2018-04-25 18:12:08 581

原创 递归算法的原理

有这样一个问题:假如后一个人的年龄比前一个人大两岁,有五个人,第一个人的年纪为10岁,求另外几个人的年龄我们先写一段代码:然后呢进行入栈操作(先进后出),Age(5)进栈,Age(4)+2未知,然后如此反复直到Age(1)进栈,这时候Age(1)已知则进行出栈操作,因为函数本身调用自己,然后在返回上一层,依次解出她们的值。递归算法的效率比循环的 效率低...

2018-04-24 13:59:51 315

原创 字符串常量与字符串数组

1、    对于字符串,必以“\0”结尾,如果是双引号会在它所包含内容后面自动加一个“\0”,且会占据字节数。2、    字符数组中若不指定长度,系统会自动分配char *str1 = "abcde";//1,字符串常量char str2[] = "abcde";//2,字符数组,在分配字节时会在最后加上'\0'3、    字符串常量的值不能被修改因为定义arr 为指针,指向的地址为字符串“abc...

2018-04-24 13:31:33 920

原创 二维数组

二维数组可以定义为int arr[3][4] = {{1,2,3,4},{5,6,7,8,},{9,10,11,12}};当然也可以这样定义int arr[][4] ={{1,2,3,4},{5,6,7,8},{9,10,11,12}}int arr[][4] ={1,2,3,4,5,6,7,8,9,10,11,12}但是arr[2][]或者arr[][]这两种都是错误的。对二维数组来言,就相当于...

2018-04-23 23:45:29 398

原创 const

c++中,如果一个变量被const修饰,那么它的左值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有# define吗,干嘛还要用const呢?万事都是有它的规律和道理的,const的存在一定有它的合理性,,const的作用有以下几点:1.将变量变成只读举个例子:int a=20;//可读可写int b;//b=a;//使用了a的读权限a=20;//a的写权限,左值...

2018-04-14 23:32:15 146

原创 -----给出一个等式求进制

首先;让我们来看这样的一道题目:假设在n进制下,下面的等式成立,567*456=150216;n的值是???A.9  B.10  C.12  D.181.一般呢,我们会将这个进制代入里边解方程:而将这个等式左边可化为(5^2+6n)*(4n^2+5n+6)=20n^4+24n^3+28n^2+25n^3+30n^2+35n+30n^2+36n+42=20^4+49n^3+88n^2+71n+42等...

2018-04-12 22:43:21 495

原创 指针加减法

指针加减法有以下几种情况;咱分开讨论:指针加法:做加法之前呢,我们先做这样一件事:编写一个程序:那么这就有问题了,“p”++是加的什么,一个字节?一个单元格?还是整个数组?首先排除掉加的整个数组,若是加的整个数组长度的话,将会直接跳到数组最后;无意义,那么要是加一个字节呢?我们来分析分析:用画图的方式来表示这个数组然后,为了方便分析,我们将这个格子放大四倍(一个格子代表四个字节)如果放入数字的话,...

2018-04-11 23:18:20 18916 6

原创 数组与指针

一、数组  1.所谓数组,是无序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。  在C语言中, 数组属于构造数据类型...

2018-04-08 14:52:06 106

原创 父子函数的调用

我们要向交换两个数,先进行一个简单的程序:可是经过检验后我们发现,两个数中,当printf放在子函数时是可以交换的,放在下边的main函数(父函数)却不能交换,什么原因呢?这里需要解释一下:当父函数调用子函数,子函数的值要是想改变,必须满足下边两个条件---1.传指针2.解引用这里就引入了指针这个知识点。我们每个人都有属于自己的身份证号,而指针就相当于专属的一个地址,也是独一无二的。我们利用指针给...

2018-04-08 14:08:21 1113

原创 丢弃个位得到个位,丢弃最高位得到最高位的应用

给出一个数字(1)求出它是几位数(2)分别输出每一位数字(3)按逆序输出各位数字方法:求一个数是几位数,每次给它除以10,然后丢弃余数,直到为0结束,简言之就是得到个位,丢弃个位,然后统计位数具体操作如图一2.对于分别输出每一位数字来言,首先我们需要统计它的位数,然后确立最高位,从最高位开始每次除以10的n-1次方,得到最高位,然后以此进行,将最高位在丢弃3.逆序输出:将当前数字%10,并输出,相...

2018-03-30 17:15:29 242

空空如也

空空如也

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

TA关注的人

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