自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vector函数介绍与实现(迭代器失效)

vector是C++中STL提供的一个容器类,和数组类似,常用于数组大小不可知的情况下来替代数组。vector是为了实现动态数组而产生的容器。头插头删效率低,支持随机访问

2024-01-24 13:16:29 919

原创 Vim命令行参数与Makefile

在Linux下,​Vim 是一个高度可配置的文本编辑器,旨在非常高效地创建和更改任何类型的文本,它对于我们程序开发者来说,是一件非常好用的工具​makefile是一个非常重要的工具,它可以自动化编译和构建过程,但我们需要先进行编辑

2024-01-21 13:45:58 1035 1

原创 String在VS与Linux下的区别

在内存中存储时只有一个字符串,不过这个字符串每次都会多开12个字节,前4个存size,中间4个存capacity,后4个存引用计数。需要改变数据时偏移相应的字节,转成int*后解引用。这个指针指向字符串的开始,即这12个字节后。写时拷贝:有时拷贝时不去写(修改),就不会去重新拷贝,只有当写 时,才会拷贝;如果不写,则不用拷贝(提高效率)。每当创建一个string对象时,编译器就会检查当前字符串的大小,运行程序后,打印结果为 8,所以。Windows系统下会开辟。可以减少小字符串的内存开销,

2024-01-20 20:41:00 433

原创 Linux基本指令与权限了解

对于 ls,pwd,cd,touch,mkdir,rm,我们只需要简单了解,因为这些经常使用,对于剩下的不常用的,我们应进行练习

2023-11-17 13:03:29 71

原创 C++模板介绍

C++模板是一种泛型编程的基础,它允许你以一种独立于任何特定类型的方式编写代码。模板可以看作是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念

2023-11-12 15:42:44 39

原创 c++类与对象详解

对于内置类型(如int,double等)在类中不会被自动初始化,即初始值是未定义的对于自定义类型(即自己定义的类或结构体),如果类中有自定义类型的成员变量,那么在创建类的对象时,这个成员变量会自动初始化,编译器会自动调用这个成员变量的默认构造函数,在构造函数中初始化内置类型的成员变量。

2023-11-12 11:20:33 31

原创 c++类的定义

类和结构体都是一种数据类型,类和结构体的主要区别在于它们的默认访问权限。类的默认访问权限是私有的。结构体的默认访问权限是公共的。

2023-10-26 20:05:56 34

原创 c++内联函数

内联函数和宏都是为了提高程序的性能而设计的,内联函数可以递归调用、被重载、被调试器识别、更安全

2023-10-26 19:28:20 24

原创 堆排序、快速排序、希尔排序、插入排序、归并排序、选择排序稳定性与时间复杂度

把第一个元素看做一个有序序列,把后面的元素看做未排序序列,控制[0,end]有序 使用双层循环,外层遍历数组,内层把当前元素插入的相应的位置,并进行移动。为了避免这种情况,可以使用三数取中来选择基准元素(第一个与最后一个元素的中间元素为基准值),可以提高快速排序的效率,但并不能完全避免最坏的情况,如有大量重复元素。选定一个基准元素,这个元素位置为坑,右边找小,左边找大,找到的话交换元素,新位置则为坑位,一遍走完后,把基准元素的值赋给坑位。

2023-10-19 14:11:11 144

原创 二叉树概念详解

当一个二叉树层数为 h 时,它的前 h-1 层是满的,第 h 层从左至右是连续的。若一个节点含有子节点,则这个节点称为其子节点的父节点;如上图:A是B的父节点。:以某节点为根的子树中任一节点都称为该节点的子孙。可以快速找到任何节点的父节点,但如果需要找到一个节点的子节点,需要遍历整个数组。一个节点含有的子树的根节点称为该节点的子节点;在Windows中,我们的c盘即为树的根,文件夹则为根的子节点。从根开始定义起,根为第1层,根的子节点为第2层,以此类推;在Linux中,/ 即为树的根,目录则为根的子节点。

2023-10-07 00:13:50 64

原创 顺序表与链表的逻辑

线性表(linear list)是n个具有相同特性的数据元素的有限序列,它是数据结构的一种。线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。

2023-07-30 19:46:11 57

原创 算法的时间复杂度和空间复杂度

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的 数据元素的集合。数据在内存中的本质就是增删查改算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。算法效率是指算法完成任务所需的资源(如时间和空间)的多少。一个高效的算法能够在较短的时间内完成任务,同时占用较少的内存空间时间复杂度 是指算法完成任务所需的时间。

2023-07-25 00:59:00 49

原创 程序的编译和链接

_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义int main()return 0;运行结果为main.cpp603:34:581预定义符号是C标准定义的宏定义符号,总共有以上五个我们定义了一个名为 PI 的宏,3.14159则是它的值当预处理器遇到 PI 时,它会用 3.14159 来替换它,如下。

2023-07-22 15:38:42 337 1

原创 文件内容函数详解

使用文件可以将数据直接存储到磁盘上,做到了数据的持久化(如微信聊天记录,购物记录等)函数名功能适用于fgetc字符输入函数所有输入流fputc字符输出函数所有输出流fgets文本行输入函数所有输入流fputs文本行输出函数所有输出流fscanf格式化输入函数所有输入流fprintf格式化输出函数所有输出流fread二进制输入文件fwrite二进制输出文件。

2023-07-18 13:26:41 134

原创 柔性数组详解

包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大 小,以适应柔性数组的预期大小。在开辟空间时,应 首元素 加上 需要为柔性数组开辟的空间。sizeof 返回的这种结构大小不包括柔性数组的内存。结构中的柔性数组成员前面必须至少一个其他成员。方便内存释放,有利于访问速度。柔性数组可大可小,突出一个。

2023-07-15 13:25:53 35

原创 动态内存开辟

内存分为:栈区,堆区,静态区栈区:存放局部变量,形式参数堆区:动态内存开辟的(静态区:全局变量,静态变量。

2023-07-14 17:40:32 32

原创 自定义类型(结构体,位段,枚举,联合)

自定义类型有:结构体,枚举,联合。

2023-07-14 09:26:58 26

原创 memcpy函数(内存复制)

把ptr指向的前num个字节的内容,设置成我们想要的value值(以字节为单位)如 int arr[]={1,2,3,4,5,6,7,8,9,}会覆盖原数组,不能得到{1,2,1,2,3,4,5,8,9}memcmp内存比较:一对一对字节进行比较。用来处理不相关的,不重叠的内存拷贝,函数是专门处理这种情况的,memset:填充内存块。参数跟memcpy一样。

2023-07-11 14:56:00 159

原创 模拟实现strstr(查找字符串)

【代码】模拟实现strstr(查找字符串)

2023-07-10 17:32:57 36 1

原创 strncpy,strncmp,strncat

相对安全的函数,传参时需要传 想要改变的长度。

2023-07-10 17:08:54 30 1

原创 模拟实现strcat函数(连接字符串)

【代码】模拟实现strcat函数(连接字符串)

2023-07-10 16:58:12 44 1

原创 模拟实现strcmp函数(比较字符串大小)

【代码】模拟实现strcmp函数。

2023-07-10 16:51:29 70 1

原创 模拟实现strcpy(复制字符串)

利用assert函数判断是否为NULL。

2023-07-10 16:43:00 23 1

原创 模拟实现strlen函数(计算字符串长度)

【代码】模拟实现strlen函数。

2023-07-10 16:23:42 41 1

原创 指针和数组

1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。2. & 数组名 ,这里的数组名表示整个数组,取出的是整个数组的地址。

2023-07-09 13:52:25 35 1

原创 qsort函数(快速排序) strcmp(比较字符串大小)

/函数指针类型——这个函数指针指向的数,能够比较base指向数组中的两个元素。在返回时直接return strcmp( p1 - p2 );//void* 可以接受任意数据,但不能改变或加减,如++打印结果为 0 1 2 3 4 5 6 7 8 9。//指向了需要排序的数组的第一个元素。//一个元素的大小,单位是字节。适合任意类型数据的排序。

2023-07-07 22:09:12 184 1

原创 函数指针数组

如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是有该函数的实现方式直接调用,而是在特定的时间或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。//pf是数组(对应上边的,存放函数指针的数组),&pf是整个数组的地址,而不是首元素的地址。//如计算器,参数均为(int,int),可以放在同一个数组内。函数指针数组:数组的每个元素是函数指针类型。//p就是指向函数指针数组的指针。//函数指针数组的地址。

2023-07-07 21:24:02 39 1

原创 指针数组详解

(&数组名 是整个数组的地址)其余情况(除sizeof)数组名都为数组首元素地址。const在*左边限制的是*p(即指向的字符串),在*右边限制的是p。指针(地址)需要存储起来——存储到变量中,这个变量就被称为指针变量。指针(地址)的大小固定为4/8哥字节(32位平台/64位平台)整形指针——指向整型变量的指针,存放整形变量的地址的指针变量。字符指针——指向字符变量的指针,存放字符变量的地址的指针变量。数组指针——指向数组的指针,存放的是数组的地址的指针变量。地址(编号也称为地址)——一级字符指针的数组。

2023-07-07 08:56:16 381 1

原创 浮点数存储详解

一、S。

2023-06-03 21:09:27 663

原创 猜名次小游戏

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。

2023-05-28 02:28:11 28

原创 猜凶手小游戏(c语言)

某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。现在请根据这些信息,写一个程序来确定到底谁是凶手。已知3个人说了真话,1个人说的是假话。只需判断真话的次数为3次即可。

2023-05-28 01:14:22 201 1

原创 c语言实现杨辉三角(数组与递归)

(3)第一行有1个元素,第二行有2个元素,第三行有3个元素……(可以用两个元素来遍历)更容易理解,占用内存相较一维数组较大。如3=1+2,4=3+1,10=4+6。arr[ j-1 ] 与 arr[ j ]即当从前向后遍历时会出现错误,是因为。(2)除最外侧元素外,其他元素都是。和我们预想中对应的数值不一样。从后向前遍历即可避免这个错误。关于上述代码中不易理解的点;最外两侧的元素都是1。

2023-05-28 00:25:13 1091 1

原创 const与 * 的关系

可以改变 *p 指向的值,不可以改变 *p 指向的地址;可以改变 *p 指向的地址,不可以改变 *p 的值;全部变量和静态变量不初始化默认为0;当const 在 * 右边时。当const 在 * 左边时。

2023-05-23 18:24:07 62 1

原创 扫雷代码实现

把board[x][y]周围8个坐标相加,然后返回,因为字符0,1,2,3.....都是连续的,所以‘1’-‘0’=1,即有1个雷便返回整数1.getminecount用于获取雷的个数。雷的数量确定与显示,怎么防止数组溢出。一.先确定思路——游戏实现的过程。2.打印菜单与游戏实现过程。此代码只计算周围八个坐标。1.选择是否开始游戏。

2023-05-10 18:37:24 20

原创 字符串的简单理解

char *类型的变量,必须以'\0'结尾,计算的是字符串长度,不是大小,不包括。sizeof:数组、结构体等静态变量,计算的是内存大小,包括。因为指针在32位计算机上是4字节,在64位计算机上是8字节,:sizof计算了’\0‘,所以sizeof计算的。strlen则没有计算’\0‘,在用使用指针打印字符串时应该注意。函数这两种方式来计算字符串的长度。,所以sizeof计算的。而strlen只有碰到。才会结束,所以是随机值。常用sizeof()2.字符串的指针运算。

2023-05-06 22:07:39 15

原创 c语言生成随机数

用rand()函数获取随机数,大小为0~32767然后用srand()套用time函数,获取时间戳,根据时间戳生成随机数srand((unsigned int)time(NULL)虽然time函数返回为整型,但还是要强制类型转换

2023-04-27 00:20:11 36

原创 c语言关键字

修饰类型:const(修饰常量),signed(有符号),unsigned(无符号),typedef(类型重命名)分支:break(终止),switch case(选择),default(默认),if else, goto。循环:break(终止循环),continue(跳出循环),do while,for,while。数据类型:char,double,float,int,long,short,void。自定义类型:enum(枚举),struct(结构体),union(联合体)函数返回:return。

2023-04-22 23:09:27 25 1

原创 scanf返回的是输入的个数

2023-04-22 14:17:19 122 1

空空如也

空空如也

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

TA关注的人

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