自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排序(插入,希尔,选择,堆,冒泡,快速,归并,计数)

直接插入排序的基本思想:通过取一个数a与前面的数比较,a小则将前面的数后移,a继续向前比较,直到找到比a更小的数,插入到该位置。代码实现:2.希尔排序:希尔排序的基本思想:先选定一个整数gap,将需要排序的内容分为gap组,所有的距离为gap的在同一组,并对每一组内的数进行排序。然后重复上述操作,直到gap减为1。我们来看一下分步图:希尔排序就是对直接插入排序的优化,当gap > 1时都是在对数组进行预排序,当gap = 1时,此时的数组已经接近有序了,且当gap为1时,我们代入到希尔排序的代码中,

2024-09-04 11:42:17 781 1

原创 C++ 模板

(推荐使用)

2024-08-18 19:18:48 972

原创 C++内存管理

申请自定义类型的空间时,new会调用构造函数delete会调用析构函数,而malloc和free不会。(1)new 的原理:•调用operator new申请空间•在申请的空间上执行构造函数,完成对象的构造(2)delete 原理:•在空间上执行析构函数,完成对象中资源的清理工作•调用operator delete释放对象的空间(1)new T[N] 的原理:•调用operator new[],在operator new[]中实际调用operator new完成对N个对象空间的申请•。

2024-08-17 18:25:10 1020

原创 C++类和对象

(1)class为定义类的关键字,Date为类的名字,{}中为类的主体,类定义结束时后面分号不能省略。类体中内容称为类的成员:变量称为类的属性或成员变量;函数称为类的方法或成员函数class Dateprivate:// 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如_ 或者 m开头int _year;int _month;int _day;(2)为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如_ 或者 m开头。C++中这个并不是强制的,只是⼀些惯例。

2024-08-15 21:06:02 987

原创 C++入门基础

•定义命名空间,需要使用namespace关键字,后面跟命名空间的名字,然后接一对{},{}中即为命名空间的成员。命名空间中可以定义变量/函数/类。•namespace本质是定义出一个作用域,这个域跟全局域相互独立,不同的域可以定义同名变量,所以下面的rand就不会存在冲突了。// 命名空间中可以定义变量/函数/类型int val;int main()// 这⾥默认是访问的是全局的rand函数指针// 这⾥指定bit命名空间中的randreturn 0;•。

2024-08-13 19:36:41 785

原创 文件详解(C代码)

在日常中,我们写的程序的数据是存储在电脑的内存中的,那么当程序退出后,内存被回收,这时数据就会遗失,当我们下次运行程序的时候,是看不到上次的数据的。文件的内容不一定是一段程序,也可能是程序运行时读写的一些数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。每当打开文件时,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不必关心细节。如果要求在外存上以ASCLL码的形式存储,在需要在存储前转换。,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。

2024-05-29 17:30:54 907

原创 C语言自定义类型详解

C语⾔已经提供了内置类型,如:char、short、int、long、float、double等,但是只有这些内置类型还是不够的,假设我想描述学生,描述⼀本书,这时单⼀的内置类型是不行的。描述⼀个学生需要名字、年龄、学号、身高、体重等;描述⼀本书需要作者、出版社、定价等。C语言为了解决这个问题,增加了结构体这种⾃定义的数据类型,让程序员可以自己创造适合的类型。结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如:标量、数组、指针,甚⾄是其他结构体。int x;int y;

2024-05-17 13:24:38 754

原创 大小端字节序

其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下⾯是具体的概念:大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。上述概念需要记住,方便分辨大小端。

2024-05-17 13:22:32 245

原创 栈与队列的实现

因为我们在初始化时将top设置为0,但此时栈中并未有元素,而数组的首元素则是从0下标开始,在后面的入栈中,top在每一次入栈后都会+1,因此top的指向并非为栈顶元素,而是栈顶元素的下一位。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。,其只允许在固定的一端进行插入和删除元素操作。

2024-05-15 12:08:04 238

原创 浮点数在内存中的存储

因此,此时的有效数字M不再加上第⼀位的1,而是还原为0.xxxxxx的小数。IEEE 754 规定,在计算机内部保存M时,默认这个数的第⼀位总是1,因此可以被舍去,只保存后⾯的xxxxxx部分。对于64位的浮点数,最⾼的1位存储符号位S,接着的11位存储指数E,剩下的52位存储有效数字M。对于32位的浮点数,最⾼的1位存储符号位S,接着的8位存储指数E,剩下的23位存储有效数字M。n的值:以整数的形式存储到n中的9,以%d(整数形式)打印,结果为9。例如:0.5 的二进制形式为0.1,表示的时候为(-1)

2024-05-06 12:14:20 939

原创 C语言内存函数

若destination大于source时,我们应当将source中从后向前的将内容拷贝进入到destination中去若destination小于source时,我们应当将source中从前向后的将内容拷贝进入到destination中去除了上述两种情况外,若两者内存未重叠,从前到后与从后向前都可以达成拷贝的目的。

2024-03-24 15:51:16 739

原创 分支与循环语句

也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不是0,则语句执⾏。例:如果大于等于140,则表明他是一个天才,输出“Genius”。

2023-12-03 23:33:27 876

原创 printf函数:格式化输出函数

如上图,%5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。若希望左对齐可在占位符的 % 的后⾯插⼊⼀个 - 号(如下所示)。上图中“I am %d years old.”中的%d就是一个占位符,该位置最终被后面的19代入占据。如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值。的两个星号通过 printf() 的两个参数5和2传入。第二个参数就是替换占位符的值,如上面的整数19替换%d。“占位符”所占的位置,可由其他值代入。, printf() 的。

2023-11-25 12:53:31 544

原创 *p++、*(p++)、*++p、*(++p)、(*p)++、++*p区别和用法

按从右向左的结合原则,++*p求值的顺序即为先进行“*”,然后再进行“++”运算,即先取出*p的值并赋给a,然后将*p的值arr[1]加1,但*p指向的内容不变。由于括号内优先运算,所以表达式先取出*p(假设为arr[1])的值并赋给a,然后讲*p的值arr[1]所代表的内容加1。再根据p++的运算先取值再自增,即为先取*p,然后进行p++的自增操作。再根据++p的运算先自增再取值,即为先进行p++的自增操作,然后取*p。此时*p指向的内容会发生改变,变为数组的下一位。--变量名/变量名--

2023-11-18 23:35:44 8368 12

空空如也

空空如也

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

TA关注的人

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